home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK1.toast / Development Kits (Disc 1) / Interfaces & Libraries / Interfaces / CIncludes / QuickTimeComponents.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-01  |  108.8 KB  |  2,573 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        QuickTimeComponents.h
  3.  
  4.      Contains:    QuickTime interfaces
  5.  
  6.      Version:    Technology:    Technology:    QuickTime 2.5
  7.                  Package:    Universal Interfaces 2.1.3
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __QUICKTIMECOMPONENTS__
  19. #define __QUICKTIMECOMPONENTS__
  20.  
  21. #ifndef __COMPONENTS__
  22. #include <Components.h>
  23. #endif
  24. #ifndef __IMAGECOMPRESSION__
  25. #include <ImageCompression.h>
  26. #endif
  27. #ifndef __MOVIES__
  28. #include <Movies.h>
  29. #endif
  30. #ifndef __QUICKDRAW__
  31. #include <Quickdraw.h>
  32. #endif
  33. #ifndef __VIDEO__
  34. #include <Video.h>
  35. #endif
  36. #ifndef __MEMORY__
  37. #include <Memory.h>
  38. #endif
  39. #ifndef __SOUND__
  40. #include <Sound.h>
  41. #endif
  42. #ifndef __QUICKTIMEMUSIC__
  43. #include <QuickTimeMusic.h>
  44. #endif
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. #if PRAGMA_IMPORT_SUPPORTED
  51. #pragma import on
  52. #endif
  53.  
  54. #if PRAGMA_ALIGN_SUPPORTED
  55. #pragma options align=mac68k
  56. #endif
  57.  
  58.  
  59. enum {
  60.     clockComponentType            = 'clok',
  61.     systemTickClock                = 'tick',                        /* subtype: 60ths since boot        */
  62.     systemSecondClock            = 'seco',                        /* subtype: seconds since 1904        */
  63.     systemMillisecondClock        = 'mill',                        /* subtype: 1000ths since boot        */
  64.     systemMicrosecondClock        = 'micr'                        /* subtype: 1000000ths since boot    */
  65. };
  66.  
  67.  
  68. enum {
  69.     kClockRateIsLinear            = 1,
  70.     kClockImplementsCallBacks    = 2
  71. };
  72.  
  73. #if OLDROUTINENAMES
  74. #define GetClockTime(aClock, out) ClockGetTime(aClock, out)
  75. #endif
  76. /** These are Clock procedures **/
  77. extern pascal ComponentResult ClockGetTime(ComponentInstance aClock, TimeRecord *out)
  78.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A);
  79.  
  80. extern pascal QTCallBack ClockNewCallBack(ComponentInstance aClock, TimeBase tb, short callBackType)
  81.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
  82.  
  83. extern pascal ComponentResult ClockDisposeCallBack(ComponentInstance aClock, QTCallBack cb)
  84.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  85.  
  86. extern pascal ComponentResult ClockCallMeWhen(ComponentInstance aClock, QTCallBack cb, long param1, long param2, long param3)
  87.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0004, 0x7000, 0xA82A);
  88.  
  89. extern pascal ComponentResult ClockCancelCallBack(ComponentInstance aClock, QTCallBack cb)
  90.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  91.  
  92. extern pascal ComponentResult ClockRateChanged(ComponentInstance aClock, QTCallBack cb)
  93.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A);
  94.  
  95. extern pascal ComponentResult ClockTimeChanged(ComponentInstance aClock, QTCallBack cb)
  96.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  97.  
  98. extern pascal ComponentResult ClockSetTimeBase(ComponentInstance aClock, TimeBase tb)
  99.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  100.  
  101. extern pascal ComponentResult ClockStartStopChanged(ComponentInstance aClock, QTCallBack cb, Boolean startChanged, Boolean stopChanged)
  102.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  103.  
  104. extern pascal ComponentResult ClockGetRate(ComponentInstance aClock, Fixed *rate)
  105.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  106.  
  107.  
  108. enum {
  109.     StandardCompressionType        = 'scdi',
  110.     StandardCompressionSubType    = 'imag'
  111. };
  112.  
  113. typedef pascal Boolean (*SCModalFilterProcPtr)(DialogPtr theDialog, EventRecord *theEvent, short *itemHit, long refcon);
  114. typedef pascal short (*SCModalHookProcPtr)(DialogPtr theDialog, short itemHit, void *params, long refcon);
  115.  
  116. #if GENERATINGCFM
  117. typedef UniversalProcPtr SCModalFilterUPP;
  118. typedef UniversalProcPtr SCModalHookUPP;
  119. #else
  120. typedef SCModalFilterProcPtr SCModalFilterUPP;
  121. typedef SCModalHookProcPtr SCModalHookUPP;
  122. #endif
  123. /*    Preference flags.*/
  124.  
  125. enum {
  126.     scListEveryCodec            = 1L << 1,
  127.     scAllowZeroFrameRate        = 1L << 2,
  128.     scAllowZeroKeyFrameRate        = 1L << 3,
  129.     scShowBestDepth                = 1L << 4,
  130.     scUseMovableModal            = 1L << 5
  131. };
  132.  
  133. /*    Possible test flags for setting test image.*/
  134.  
  135. enum {
  136.     scPreferCropping            = 1 << 0,
  137.     scPreferScaling                = 1 << 1,
  138.     scPreferScalingAndCropping    = scPreferScaling | scPreferCropping
  139. };
  140.  
  141. /*    Dimensions of the image preview box.*/
  142.  
  143. enum {
  144.     scTestImageWidth            = 80,
  145.     scTestImageHeight            = 80
  146. };
  147.  
  148. /*    Possible items returned by hookProc.*/
  149.  
  150. enum {
  151.     scOKItem                    = 1,
  152.     scCancelItem                = 2,
  153.     scCustomItem                = 3
  154. };
  155.  
  156. /*    Result returned when user cancelled.*/
  157.  
  158. enum {
  159.     scUserCancelled                = 1
  160. };
  161.  
  162. /* Component selectors*/
  163.  
  164. enum {
  165.     scPositionRect                = 2,
  166.     scPositionDialog            = 3,
  167.     scSetTestImagePictHandle    = 4,
  168.     scSetTestImagePictFile        = 5,
  169.     scSetTestImagePixMap        = 6,
  170.     scGetBestDeviceRect            = 7,
  171.     scRequestImageSettings        = 10,
  172.     scCompressImage                = 11,
  173.     scCompressPicture            = 12,
  174.     scCompressPictureFile        = 13,
  175.     scRequestSequenceSettings    = 14,
  176.     scCompressSequenceBegin        = 15,
  177.     scCompressSequenceFrame        = 16,
  178.     scCompressSequenceEnd        = 17,
  179.     scDefaultPictHandleSettings    = 18,
  180.     scDefaultPictFileSettings    = 19,
  181.     scDefaultPixMapSettings        = 20,
  182.     scGetInfo                    = 21,
  183.     scSetInfo                    = 22,
  184.     scNewGWorld                    = 23
  185. };
  186.  
  187. /*    Get/SetInfo structures.*/
  188. struct SCSpatialSettings {
  189.     CodecType                         codecType;
  190.     CodecComponent                     codec;
  191.     short                             depth;
  192.     CodecQ                             spatialQuality;
  193. };
  194. typedef struct SCSpatialSettings SCSpatialSettings;
  195.  
  196. struct SCTemporalSettings {
  197.     CodecQ                             temporalQuality;
  198.     Fixed                             frameRate;
  199.     long                             keyFrameRate;
  200. };
  201. typedef struct SCTemporalSettings SCTemporalSettings;
  202.  
  203. struct SCDataRateSettings {
  204.     long                             dataRate;
  205.     long                             frameDuration;
  206.     CodecQ                             minSpatialQuality;
  207.     CodecQ                             minTemporalQuality;
  208. };
  209. typedef struct SCDataRateSettings SCDataRateSettings;
  210.  
  211. struct SCExtendedProcs {
  212.     SCModalFilterUPP                 filterProc;
  213.     SCModalHookUPP                     hookProc;
  214.     long                             refcon;
  215.     Str31                             customName;
  216. };
  217. typedef struct SCExtendedProcs SCExtendedProcs;
  218.  
  219. /*    Get/SetInfo selectors*/
  220.  
  221. enum {
  222.     scSpatialSettingsType        = 'sptl',                        /* pointer to SCSpatialSettings struct*/
  223.     scTemporalSettingsType        = 'tprl',                        /* pointer to SCTemporalSettings struct*/
  224.     scDataRateSettingsType        = 'drat',                        /* pointer to SCDataRateSettings struct*/
  225.     scColorTableType            = 'clut',                        /* pointer to CTabHandle*/
  226.     scProgressProcType            = 'prog',                        /* pointer to ProgressRecord struct*/
  227.     scExtendedProcsType            = 'xprc',                        /* pointer to SCExtendedProcs struct*/
  228.     scPreferenceFlagsType        = 'pref',                        /* pointer to long*/
  229.     scSettingsStateType            = 'ssta',                        /* pointer to Handle*/
  230.     scSequenceIDType            = 'sequ',                        /* pointer to ImageSequence*/
  231.     scWindowPositionType        = 'wndw',                        /* pointer to Point*/
  232.     scCodecFlagsType            = 'cflg',                        /* pointer to CodecFlags*/
  233.     scCodecSettingsType            = 'cdec',                        /* pointer to Handle*/
  234.     scForceKeyValueType            = 'ksim'                        /* pointer to long*/
  235. };
  236.  
  237. /*    scTypeNotFoundErr returned by Get/SetInfo when type cannot be found.*/
  238. struct SCParams {
  239.     long                             flags;
  240.     CodecType                         theCodecType;
  241.     CodecComponent                     theCodec;
  242.     CodecQ                             spatialQuality;
  243.     CodecQ                             temporalQuality;
  244.     short                             depth;
  245.     Fixed                             frameRate;
  246.     long                             keyFrameRate;
  247.     long                             reserved1;
  248.     long                             reserved2;
  249. };
  250. typedef struct SCParams SCParams;
  251.  
  252.  
  253. enum {
  254.     scGetCompression            = 1,
  255.     scShowMotionSettings        = 1L << 0,
  256.     scSettingsChangedItem        = -1
  257. };
  258.  
  259.  
  260. enum {
  261.     scCompressFlagIgnoreIdenticalFrames = 1
  262. };
  263.  
  264. #define SCGetCompression(ci, params, where) SCGetCompressionExtended(ci,params,where,0,0,0,0)
  265. /** These are Progress procedures **/
  266. extern pascal ComponentResult SCGetCompressionExtended(ComponentInstance ci, SCParams *params, Point where, SCModalFilterUPP filterProc, SCModalHookUPP hookProc, long refcon, StringPtr customName)
  267.  FIVEWORDINLINE(0x2F3C, 0x0018, 0x0001, 0x7000, 0xA82A);
  268.  
  269. extern pascal ComponentResult SCPositionRect(ComponentInstance ci, Rect *rp, Point *where)
  270.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  271.  
  272. extern pascal ComponentResult SCPositionDialog(ComponentInstance ci, short id, Point *where)
  273.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0003, 0x7000, 0xA82A);
  274.  
  275. extern pascal ComponentResult SCSetTestImagePictHandle(ComponentInstance ci, PicHandle testPict, Rect *testRect, short testFlags)
  276.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0004, 0x7000, 0xA82A);
  277.  
  278. extern pascal ComponentResult SCSetTestImagePictFile(ComponentInstance ci, short testFileRef, Rect *testRect, short testFlags)
  279.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  280.  
  281. extern pascal ComponentResult SCSetTestImagePixMap(ComponentInstance ci, PixMapHandle testPixMap, Rect *testRect, short testFlags)
  282.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0006, 0x7000, 0xA82A);
  283.  
  284. extern pascal ComponentResult SCGetBestDeviceRect(ComponentInstance ci, Rect *r)
  285.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  286.  
  287. extern pascal ComponentResult SCRequestImageSettings(ComponentInstance ci)
  288.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x000A, 0x7000, 0xA82A);
  289.  
  290. extern pascal ComponentResult SCCompressImage(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc, Handle *data)
  291.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x000B, 0x7000, 0xA82A);
  292.  
  293. extern pascal ComponentResult SCCompressPicture(ComponentInstance ci, PicHandle srcPicture, PicHandle dstPicture)
  294.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  295.  
  296. extern pascal ComponentResult SCCompressPictureFile(ComponentInstance ci, short srcRefNum, short dstRefNum)
  297.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  298.  
  299. extern pascal ComponentResult SCRequestSequenceSettings(ComponentInstance ci)
  300.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x000E, 0x7000, 0xA82A);
  301.  
  302. extern pascal ComponentResult SCCompressSequenceBegin(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc)
  303.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000F, 0x7000, 0xA82A);
  304.  
  305. extern pascal ComponentResult SCCompressSequenceFrame(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, Handle *data, long *dataSize, short *notSyncFlag)
  306.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0010, 0x7000, 0xA82A);
  307.  
  308. extern pascal ComponentResult SCCompressSequenceEnd(ComponentInstance ci)
  309.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A);
  310.  
  311. extern pascal ComponentResult SCDefaultPictHandleSettings(ComponentInstance ci, PicHandle srcPicture, short motion)
  312.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0012, 0x7000, 0xA82A);
  313.  
  314. extern pascal ComponentResult SCDefaultPictFileSettings(ComponentInstance ci, short srcRef, short motion)
  315.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  316.  
  317. extern pascal ComponentResult SCDefaultPixMapSettings(ComponentInstance ci, PixMapHandle src, short motion)
  318.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0014, 0x7000, 0xA82A);
  319.  
  320. extern pascal ComponentResult SCGetInfo(ComponentInstance ci, OSType infoType, void *info)
  321.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0015, 0x7000, 0xA82A);
  322.  
  323. extern pascal ComponentResult SCSetInfo(ComponentInstance ci, OSType infoType, void *info)
  324.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  325.  
  326. extern pascal ComponentResult SCNewGWorld(ComponentInstance ci, GWorldPtr *gwp, Rect *rp, GWorldFlags flags)
  327.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
  328.  
  329. extern pascal ComponentResult SCSetCompressFlags(ComponentInstance ci, long flags)
  330.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  331.  
  332. extern pascal ComponentResult SCGetCompressFlags(ComponentInstance ci, long *flags)
  333.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  334.  
  335.  
  336. enum {
  337.     TweenComponentType            = 'twen'
  338. };
  339.  
  340. typedef ComponentInstance TweenerComponent;
  341. typedef struct TweenRecord TweenRecord;
  342. typedef pascal ComponentResult (*TweenerDataProcPtr)(TweenRecord *tr, void *tweenData, long tweenDataSize, long dataDescriptionSeed, Handle dataDescription, ICMCompletionProcRecordPtr asyncCompletionProc, ProcPtr transferProc, void *refCon);
  343.  
  344. #if GENERATINGCFM
  345. typedef UniversalProcPtr TweenerDataUPP;
  346. #else
  347. typedef TweenerDataProcPtr TweenerDataUPP;
  348. #endif
  349. struct TweenRecord {
  350.     long                             version;
  351.  
  352.     QTAtomContainer                 container;
  353.     QTAtom                             tweenAtom;
  354.     QTAtom                             dataAtom;
  355.     Fixed                             percent;
  356.  
  357.     TweenerDataUPP                     dataProc;
  358.  
  359.     void *                            private1;
  360.     void *                            private2;
  361. };
  362.  
  363. extern pascal ComponentResult TweenerInitialize(TweenerComponent tc, QTAtomContainer container, QTAtom tweenAtom, QTAtom dataAtom)
  364.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  365.  
  366. extern pascal ComponentResult TweenerDoTween(TweenerComponent tc, TweenRecord *tr)
  367.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A);
  368.  
  369. extern pascal ComponentResult TweenerReset(TweenerComponent tc)
  370.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A);
  371.  
  372.  
  373. enum {
  374.     TCSourceRefNameType            = 'name'
  375. };
  376.  
  377.  
  378. enum {
  379.     tcDropFrame                    = 1 << 0,
  380.     tc24HourMax                    = 1 << 1,
  381.     tcNegTimesOK                = 1 << 2,
  382.     tcCounter                    = 1 << 3
  383. };
  384.  
  385. struct TimeCodeDef {
  386.     long                             flags;                        /* drop-frame, etc.*/
  387.     TimeScale                         fTimeScale;                    /* time scale of frameDuration (eg. 2997)*/
  388.     TimeValue                         frameDuration;                /* duration of each frame (eg. 100)*/
  389.     UInt8                             numFrames;                    /* frames/sec for timecode (eg. 30) OR frames/tick for counter mode*/
  390.     UInt8                             padding;                    /* unused padding byte*/
  391. };
  392. typedef struct TimeCodeDef TimeCodeDef;
  393.  
  394.  
  395. enum {
  396.     tctNegFlag                    = 0x80                            /* negative bit is in minutes*/
  397. };
  398.  
  399. struct TimeCodeTime {
  400.     UInt8                             hours;
  401.     UInt8                             minutes;
  402.     UInt8                             seconds;
  403.     UInt8                             frames;
  404. };
  405. typedef struct TimeCodeTime TimeCodeTime;
  406.  
  407. struct TimeCodeCounter {
  408.     long                             counter;
  409. };
  410. typedef struct TimeCodeCounter TimeCodeCounter;
  411.  
  412. union TimeCodeRecord {
  413.     TimeCodeTime                     t;
  414.     TimeCodeCounter                 c;
  415. };
  416. typedef union TimeCodeRecord TimeCodeRecord;
  417.  
  418. struct TimeCodeDescription {
  419.     long                             descSize;                    /* standard sample description header*/
  420.     long                             dataFormat;
  421.     long                             resvd1;
  422.     short                             resvd2;
  423.     short                             dataRefIndex;
  424.     long                             flags;                        /* timecode specific stuff*/
  425.     TimeCodeDef                     timeCodeDef;
  426.     long                             srcRef[1];
  427. };
  428. typedef struct TimeCodeDescription TimeCodeDescription;
  429.  
  430. typedef TimeCodeDescription *TimeCodeDescriptionPtr;
  431. typedef TimeCodeDescriptionPtr *TimeCodeDescriptionHandle;
  432.  
  433. enum {
  434.     tcdfShowTimeCode            = 1 << 0
  435. };
  436.  
  437. struct TCTextOptions {
  438.     short                             txFont;
  439.     short                             txFace;
  440.     short                             txSize;
  441.     RGBColor                         foreColor;
  442.     RGBColor                         backColor;
  443. };
  444. typedef struct TCTextOptions TCTextOptions;
  445.  
  446. typedef TCTextOptions *TCTextOptionsPtr;
  447. extern pascal HandlerError TCGetCurrentTimeCode(MediaHandler mh, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, UserData *srcRefH)
  448.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0101, 0x7000, 0xA82A);
  449.  
  450. extern pascal HandlerError TCGetTimeCodeAtTime(MediaHandler mh, TimeValue mediaTime, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcdata, UserData *srcRefH)
  451.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0102, 0x7000, 0xA82A);
  452.  
  453. extern pascal HandlerError TCTimeCodeToString(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, StringPtr tcStr)
  454.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  455.  
  456. extern pascal HandlerError TCTimeCodeToFrameNumber(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, long *frameNumber)
  457.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0104, 0x7000, 0xA82A);
  458.  
  459. extern pascal HandlerError TCFrameNumberToTimeCode(MediaHandler mh, long frameNumber, TimeCodeDef *tcdef, TimeCodeRecord *tcrec)
  460.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0105, 0x7000, 0xA82A);
  461.  
  462. extern pascal HandlerError TCGetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData *srefH)
  463.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0106, 0x7000, 0xA82A);
  464.  
  465. extern pascal HandlerError TCSetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData srefH)
  466.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  467.  
  468. extern pascal HandlerError TCSetTimeCodeFlags(MediaHandler mh, long flags, long flagsMask)
  469.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  470.  
  471. extern pascal HandlerError TCGetTimeCodeFlags(MediaHandler mh, long *flags)
  472.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A);
  473.  
  474. extern pascal HandlerError TCSetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions)
  475.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  476.  
  477. extern pascal HandlerError TCGetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions)
  478.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  479.  
  480. typedef ComponentInstance MovieImportComponent;
  481. typedef ComponentInstance MovieExportComponent;
  482.  
  483. enum {
  484.     MovieImportType                = 'eat ',
  485.     MovieExportType                = 'spit'
  486. };
  487.  
  488.  
  489. enum {
  490.     canMovieImportHandles        = 1 << 0,
  491.     canMovieImportFiles            = 1 << 1,
  492.     hasMovieImportUserInterface    = 1 << 2,
  493.     canMovieExportHandles        = 1 << 3,
  494.     canMovieExportFiles            = 1 << 4,
  495.     hasMovieExportUserInterface    = 1 << 5,
  496.     dontAutoFileMovieImport        = 1 << 6,
  497.     canMovieExportAuxDataHandle    = 1 << 7,
  498.     canMovieImportValidateHandles = 1 << 8,
  499.     canMovieImportValidateFile    = 1 << 9,
  500.     dontRegisterWithEasyOpen    = 1 << 10,
  501.     canMovieImportInPlace        = 1 << 11,
  502.     movieImportSubTypeIsFileExtension = 1 << 12
  503. };
  504.  
  505.  
  506. enum {
  507.     movieImportCreateTrack        = 1,
  508.     movieImportInParallel        = 2,
  509.     movieImportMustUseTrack        = 4
  510. };
  511.  
  512.  
  513. enum {
  514.     movieImportResultUsedMultipleTracks = 8
  515. };
  516.  
  517.  
  518. enum {
  519.     kMovieExportTextOnly        = 0,
  520.     kMovieExportAbsoluteTime    = 1,
  521.     kMovieExportRelativeTime    = 2
  522. };
  523.  
  524. extern pascal ComponentResult MovieImportHandle(MovieImportComponent ci, Handle dataH, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  525.  FIVEWORDINLINE(0x2F3C, 0x0020, 0x0001, 0x7000, 0xA82A);
  526.  
  527. extern pascal ComponentResult MovieImportFile(MovieImportComponent ci, const FSSpec *theFile, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  528.  FIVEWORDINLINE(0x2F3C, 0x0020, 0x0002, 0x7000, 0xA82A);
  529.  
  530. extern pascal ComponentResult MovieImportSetSampleDuration(MovieImportComponent ci, TimeValue duration, TimeScale scale)
  531.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A);
  532.  
  533. extern pascal ComponentResult MovieImportSetSampleDescription(MovieImportComponent ci, SampleDescriptionHandle desc, OSType mediaType)
  534.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  535.  
  536. extern pascal ComponentResult MovieImportSetMediaFile(MovieImportComponent ci, AliasHandle alias)
  537.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  538.  
  539. extern pascal ComponentResult MovieImportSetDimensions(MovieImportComponent ci, Fixed width, Fixed height)
  540.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A);
  541.  
  542. extern pascal ComponentResult MovieImportSetChunkSize(MovieImportComponent ci, long chunkSize)
  543.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  544.  
  545. extern pascal ComponentResult MovieImportSetProgressProc(MovieImportComponent ci, MovieProgressUPP proc, long refcon)
  546.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0008, 0x7000, 0xA82A);
  547.  
  548. extern pascal ComponentResult MovieImportSetAuxiliaryData(MovieImportComponent ci, Handle data, OSType handleType)
  549.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  550.  
  551. extern pascal ComponentResult MovieImportSetFromScrap(MovieImportComponent ci, Boolean fromScrap)
  552.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
  553.  
  554. extern pascal ComponentResult MovieImportDoUserDialog(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *canceled)
  555.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A);
  556.  
  557. extern pascal ComponentResult MovieImportSetDuration(MovieImportComponent ci, TimeValue duration)
  558.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  559.  
  560. extern pascal ComponentResult MovieImportGetAuxiliaryDataType(MovieImportComponent ci, OSType *auxType)
  561.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  562.  
  563. extern pascal ComponentResult MovieImportValidate(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *valid)
  564.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000E, 0x7000, 0xA82A);
  565.  
  566. extern pascal ComponentResult MovieImportGetFileType(MovieImportComponent ci, OSType *fileType)
  567.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  568.  
  569. extern pascal ComponentResult MovieImportDataRef(MovieImportComponent ci, Handle dataRef, OSType dataRefType, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  570.  FIVEWORDINLINE(0x2F3C, 0x0024, 0x0010, 0x7000, 0xA82A);
  571.  
  572. extern pascal ComponentResult MovieExportToHandle(MovieExportComponent ci, Handle dataH, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration)
  573.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0080, 0x7000, 0xA82A);
  574.  
  575. extern pascal ComponentResult MovieExportToFile(MovieExportComponent ci, const FSSpec *theFile, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration)
  576.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0081, 0x7000, 0xA82A);
  577.  
  578. extern pascal ComponentResult MovieExportGetAuxiliaryData(MovieExportComponent ci, Handle dataH, OSType *handleType)
  579.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0083, 0x7000, 0xA82A);
  580.  
  581. extern pascal ComponentResult MovieExportSetProgressProc(MovieExportComponent ci, MovieProgressUPP proc, long refcon)
  582.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0084, 0x7000, 0xA82A);
  583.  
  584. extern pascal ComponentResult MovieExportSetSampleDescription(MovieExportComponent ci, SampleDescriptionHandle desc, OSType mediaType)
  585.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0085, 0x7000, 0xA82A);
  586.  
  587. extern pascal ComponentResult MovieExportDoUserDialog(MovieExportComponent ci, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration, Boolean *canceled)
  588.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0086, 0x7000, 0xA82A);
  589.  
  590. extern pascal ComponentResult MovieExportGetCreatorType(MovieExportComponent ci, OSType *creator)
  591.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A);
  592.  
  593. /* Text Export Display Info data structure*/
  594. struct TextDisplayData {
  595.     long                             displayFlags;
  596.     long                             textJustification;
  597.     RGBColor                         bgColor;
  598.     Rect                             textBox;
  599.  
  600.     short                             beginHilite;
  601.     short                             endHilite;
  602.     RGBColor                         hiliteColor;
  603.     Boolean                         doHiliteColor;
  604.     SInt8                             filler;
  605.     TimeValue                         scrollDelayDur;
  606.     Point                             dropShadowOffset;
  607.     short                             dropShadowTransparency;
  608. };
  609. typedef struct TextDisplayData TextDisplayData;
  610.  
  611. typedef ComponentInstance TextExportComponent;
  612. extern pascal ComponentResult TextExportGetDisplayData(TextExportComponent ci, TextDisplayData *textDisplay)
  613.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  614.  
  615. extern pascal ComponentResult TextExportGetTimeFraction(TextExportComponent ci, long *movieTimeFraction)
  616.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  617.  
  618. extern pascal ComponentResult TextExportSetTimeFraction(TextExportComponent ci, long movieTimeFraction)
  619.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  620.  
  621. extern pascal ComponentResult TextExportGetSettings(TextExportComponent ci, long *setting)
  622.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  623.  
  624. extern pascal ComponentResult TextExportSetSettings(TextExportComponent ci, long setting)
  625.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  626.  
  627. /*
  628. **************
  629.  
  630.     File Preview Components
  631.  
  632. **************
  633. */
  634. typedef ComponentInstance pnotComponent;
  635.  
  636. enum {
  637.     pnotComponentWantsEvents    = 1,
  638.     pnotComponentNeedsNoCache    = 2
  639. };
  640.  
  641.  
  642. enum {
  643.     ShowFilePreviewComponentType = 'pnot',
  644.     CreateFilePreviewComponentType = 'pmak'
  645. };
  646.  
  647. extern pascal ComponentResult PreviewShowData(pnotComponent p, OSType dataType, Handle data, const Rect *inHere)
  648.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  649.  
  650. extern pascal ComponentResult PreviewMakePreview(pnotComponent p, OSType *previewType, Handle *previewResult, const FSSpec *sourceFile, ICMProgressProcRecordPtr progress)
  651.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  652.  
  653. extern pascal ComponentResult PreviewMakePreviewReference(pnotComponent p, OSType *previewType, short *resID, const FSSpec *sourceFile)
  654.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0003, 0x7000, 0xA82A);
  655.  
  656. extern pascal ComponentResult PreviewEvent(pnotComponent p, EventRecord *e, Boolean *handledEvent)
  657.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  658.  
  659. typedef pascal void (*DataHCompletionProcPtr)(Ptr request, long refcon, OSErr err);
  660.  
  661. #if GENERATINGCFM
  662. typedef UniversalProcPtr DataHCompletionUPP;
  663. #else
  664. typedef DataHCompletionProcPtr DataHCompletionUPP;
  665. #endif
  666.  
  667. enum {
  668.     kDataHCanRead                = 1L << 0,
  669.     kDataHSpecialRead            = 1L << 1,
  670.     kDataHSpecialReadFile        = 1L << 2,
  671.     kDataHCanWrite                = 1L << 3,
  672.     kDataHSpecialWrite            = 1 << 4,
  673.     kDataHSpecialWriteFile        = 1 << 5,
  674.     kDataHCanStreamingWrite        = 1 << 6,
  675.     kDataHMustCheckDataRef        = 1 << 7
  676. };
  677.  
  678. struct DataHVolumeListRecord {
  679.     short                             vRefNum;
  680.     long                             flags;
  681. };
  682. typedef struct DataHVolumeListRecord DataHVolumeListRecord;
  683.  
  684. typedef DataHVolumeListRecord *DataHVolumeListPtr;
  685. typedef DataHVolumeListPtr *DataHVolumeList;
  686.  
  687. enum {
  688.     kDataHExtendedSchedule        = 'xtnd'
  689. };
  690.  
  691. struct DataHScheduleRecord {
  692.     TimeRecord                         timeNeededBy;
  693.     long                             extendedID;                    /* always is kDataHExtendedSchedule*/
  694.     long                             extendedVers;                /* always set to 0*/
  695.     Fixed                             priority;                    /* 100.0 or more means must have. lower numbers…*/
  696. };
  697. typedef struct DataHScheduleRecord DataHScheduleRecord;
  698.  
  699. typedef DataHScheduleRecord *DataHSchedulePtr;
  700. extern pascal ComponentResult DataHGetData(DataHandler dh, Handle h, long hOffset, long offset, long size)
  701.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  702.  
  703. extern pascal ComponentResult DataHPutData(DataHandler dh, Handle h, long hOffset, long *offset, long size)
  704.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0003, 0x7000, 0xA82A);
  705.  
  706. extern pascal ComponentResult DataHFlushData(DataHandler dh)
  707.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A);
  708.  
  709. extern pascal ComponentResult DataHOpenForWrite(DataHandler dh)
  710.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A);
  711.  
  712. extern pascal ComponentResult DataHCloseForWrite(DataHandler dh)
  713.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  714.  
  715. extern pascal ComponentResult DataHOpenForRead(DataHandler dh)
  716.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0008, 0x7000, 0xA82A);
  717.  
  718. extern pascal ComponentResult DataHCloseForRead(DataHandler dh)
  719.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0009, 0x7000, 0xA82A);
  720.  
  721. extern pascal ComponentResult DataHSetDataRef(DataHandler dh, Handle dataRef)
  722.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  723.  
  724. extern pascal ComponentResult DataHGetDataRef(DataHandler dh, Handle *dataRef)
  725.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A);
  726.  
  727. extern pascal ComponentResult DataHCompareDataRef(DataHandler dh, Handle dataRef, Boolean *equal)
  728.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  729.  
  730. extern pascal ComponentResult DataHTask(DataHandler dh)
  731.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
  732.  
  733. extern pascal ComponentResult DataHScheduleData(DataHandler dh, Ptr PlaceToPutDataPtr, long FileOffset, long DataSize, long RefCon, DataHSchedulePtr scheduleRec, DataHCompletionUPP CompletionRtn)
  734.  FIVEWORDINLINE(0x2F3C, 0x0018, 0x000E, 0x7000, 0xA82A);
  735.  
  736. extern pascal ComponentResult DataHFinishData(DataHandler dh, Ptr PlaceToPutDataPtr, Boolean Cancel)
  737.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x000F, 0x7000, 0xA82A);
  738.  
  739. extern pascal ComponentResult DataHFlushCache(DataHandler dh)
  740.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A);
  741.  
  742. extern pascal ComponentResult DataHResolveDataRef(DataHandler dh, Handle theDataRef, Boolean *wasChanged, Boolean userInterfaceAllowed)
  743.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0011, 0x7000, 0xA82A);
  744.  
  745. extern pascal ComponentResult DataHGetFileSize(DataHandler dh, long *fileSize)
  746.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  747.  
  748. extern pascal ComponentResult DataHCanUseDataRef(DataHandler dh, Handle dataRef, long *useFlags)
  749.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0013, 0x7000, 0xA82A);
  750.  
  751. extern pascal ComponentResult DataHGetVolumeList(DataHandler dh, DataHVolumeList *volumeList)
  752.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  753.  
  754. extern pascal ComponentResult DataHWrite(DataHandler dh, Ptr data, long offset, long size, DataHCompletionUPP completion, long refCon)
  755.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0015, 0x7000, 0xA82A);
  756.  
  757. extern pascal ComponentResult DataHPreextend(DataHandler dh, long maxToAdd, long *spaceAdded)
  758.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  759.  
  760. extern pascal ComponentResult DataHSetFileSize(DataHandler dh, long fileSize)
  761.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0017, 0x7000, 0xA82A);
  762.  
  763. extern pascal ComponentResult DataHGetFreeSpace(DataHandler dh, unsigned long *freeSize)
  764.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  765.  
  766. extern pascal ComponentResult DataHCreateFile(DataHandler dh, OSType creator, Boolean deleteExisting)
  767.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
  768.  
  769. extern pascal ComponentResult DataHGetPreferredBlockSize(DataHandler dh, long *blockSize)
  770.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  771.  
  772. extern pascal ComponentResult DataHGetDeviceIndex(DataHandler dh, long *deviceIndex)
  773.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  774.  
  775. extern pascal ComponentResult DataHIsStreamingDataHandler(DataHandler dh, Boolean *yes)
  776.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  777.  
  778. extern pascal ComponentResult DataHGetDataInBuffer(DataHandler dh, long startOffset, long *size)
  779.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x001D, 0x7000, 0xA82A);
  780.  
  781. extern pascal ComponentResult DataHGetScheduleAheadTime(DataHandler dh, long *millisecs)
  782.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  783.  
  784. extern pascal ComponentResult DataHSetCacheSizeLimit(DataHandler dh, Size cacheSizeLimit)
  785.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  786.  
  787. extern pascal ComponentResult DataHGetCacheSizeLimit(DataHandler dh, Size *cacheSizeLimit)
  788.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0020, 0x7000, 0xA82A);
  789.  
  790. extern pascal ComponentResult DataHGetMovie(DataHandler dh, Movie *theMovie, short *id)
  791.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A);
  792.  
  793. extern pascal ComponentResult DataHAddMovie(DataHandler dh, Movie theMovie, short *id)
  794.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0022, 0x7000, 0xA82A);
  795.  
  796. extern pascal ComponentResult DataHUpdateMovie(DataHandler dh, Movie theMovie, short id)
  797.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A);
  798.  
  799. extern pascal ComponentResult DataHDoesBuffer(DataHandler dh, Boolean *buffersReads, Boolean *buffersWrites)
  800.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A);
  801.  
  802. extern pascal ComponentResult DataHGetFileName(DataHandler dh, Str255 str)
  803.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  804.  
  805. extern pascal ComponentResult DataHPlaybackHints(DataHandler dh, long flags, unsigned long minFileOffset, unsigned long maxFileOffset, long bytesPerSecond)
  806.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0103, 0x7000, 0xA82A);
  807.  
  808. /* Standard type for video digitizers */
  809.  
  810. enum {
  811.     videoDigitizerComponentType    = 'vdig',
  812.     vdigInterfaceRev            = 2
  813. };
  814.  
  815. /* Input Format Standards */
  816.  
  817. enum {
  818.     ntscIn                        = 0,                            /* current input format */
  819.     currentIn                    = 0,                            /* ntsc input format */
  820.     palIn                        = 1,                            /* pal input format */
  821.     secamIn                        = 2,                            /* secam input format */
  822.     ntscReallyIn                = 3                                /* ntsc input format */
  823. };
  824.  
  825. /* Input Formats */
  826.  
  827. enum {
  828.     compositeIn                    = 0,                            /* input is composite format */
  829.     sVideoIn                    = 1,                            /* input is sVideo format */
  830.     rgbComponentIn                = 2,                            /* input is rgb component format */
  831.     rgbComponentSyncIn            = 3,                            /* input is rgb component format (sync on green?)*/
  832.     yuvComponentIn                = 4,                            /* input is yuv component format */
  833.     yuvComponentSyncIn            = 5,                            /* input is yuv component format (sync on green?) */
  834.     tvTunerIn                    = 6
  835. };
  836.  
  837. /* Video Digitizer PlayThru States */
  838.  
  839. enum {
  840.     vdPlayThruOff                = 0,
  841.     vdPlayThruOn                = 1
  842. };
  843.  
  844. /* Input Color Space Modes */
  845.  
  846. enum {
  847.     vdDigitizerBW                = 0,                            /* black and white */
  848.     vdDigitizerRGB                = 1                                /* rgb color */
  849. };
  850.  
  851. /* Phase Lock Loop Modes */
  852.  
  853. enum {
  854.     vdBroadcastMode                = 0,                            /* Broadcast / Laser Disk video mode */
  855.     vdVTRMode                    = 1                                /* VCR / Magnetic media mode */
  856. };
  857.  
  858. /* Field Select Options */
  859.  
  860. enum {
  861.     vdUseAnyField                = 0,                            /* Digitizers choice on field use */
  862.     vdUseOddField                = 1,                            /* Use odd field for half size vert and smaller */
  863.     vdUseEvenField                = 2                                /* Use even field for half size vert and smaller */
  864. };
  865.  
  866. /* vdig types */
  867.  
  868. enum {
  869.     vdTypeBasic                    = 0,                            /* basic, no clipping */
  870.     vdTypeAlpha                    = 1,                            /* supports clipping with alpha channel */
  871.     vdTypeMask                    = 2,                            /* supports clipping with mask plane */
  872.     vdTypeKey                    = 3                                /* supports clipping with key color(s) */
  873. };
  874.  
  875. /* Digitizer Input Capability/Current Flags    */
  876.  
  877. enum {
  878.     digiInDoesNTSC                = 1L << 0,                        /* digitizer supports NTSC input format */
  879.     digiInDoesPAL                = 1L << 1,                        /* digitizer supports PAL input format */
  880.     digiInDoesSECAM                = 1L << 2,                        /* digitizer supports SECAM input format */
  881.     digiInDoesGenLock            = 1L << 7,                        /* digitizer does genlock */
  882.     digiInDoesComposite            = 1L << 8,                        /* digitizer supports composite input type */
  883.     digiInDoesSVideo            = 1L << 9,                        /* digitizer supports S-Video input type */
  884.     digiInDoesComponent            = 1L << 10,                        /* digitizer supports component = rgb, input type */
  885.     digiInVTR_Broadcast            = 1L << 11,                        /* digitizer can differentiate between the two */
  886.     digiInDoesColor                = 1L << 12,                        /* digitizer supports color */
  887.     digiInDoesBW                = 1L << 13,                        /* digitizer supports black & white */
  888.                                                                 /* Digitizer Input Current Flags = these are valid only during active operating conditions,    */
  889.     digiInSignalLock            = 1L << 31                        /* digitizer detects input signal is locked, this bit = horiz lock || vertical lock */
  890. };
  891.  
  892. /* Digitizer Output Capability/Current Flags */
  893.  
  894. enum {
  895.     digiOutDoes1                = 1L << 0,                        /* digitizer supports 1 bit pixels */
  896.     digiOutDoes2                = 1L << 1,                        /* digitizer supports 2 bit pixels */
  897.     digiOutDoes4                = 1L << 2,                        /* digitizer supports 4 bit pixels */
  898.     digiOutDoes8                = 1L << 3,                        /* digitizer supports 8 bit pixels */
  899.     digiOutDoes16                = 1L << 4,                        /* digitizer supports 16 bit pixels */
  900.     digiOutDoes32                = 1L << 5,                        /* digitizer supports 32 bit pixels */
  901.     digiOutDoesDither            = 1L << 6,                        /* digitizer dithers in indexed modes */
  902.     digiOutDoesStretch            = 1L << 7,                        /* digitizer can arbitrarily stretch */
  903.     digiOutDoesShrink            = 1L << 8,                        /* digitizer can arbitrarily shrink */
  904.     digiOutDoesMask                = 1L << 9,                        /* digitizer can mask to clipping regions */
  905.     digiOutDoesDouble            = 1L << 11,                        /* digitizer can stretch to exactly double size */
  906.     digiOutDoesQuad                = 1L << 12,                        /* digitizer can stretch exactly quadruple size */
  907.     digiOutDoesQuarter            = 1L << 13,                        /* digitizer can shrink to exactly quarter size */
  908.     digiOutDoesSixteenth        = 1L << 14,                        /* digitizer can shrink to exactly sixteenth size */
  909.     digiOutDoesRotate            = 1L << 15,                        /* digitizer supports rotate transformations */
  910.     digiOutDoesHorizFlip        = 1L << 16,                        /* digitizer supports horizontal flips Sx < 0 */
  911.     digiOutDoesVertFlip            = 1L << 17,                        /* digitizer supports vertical flips Sy < 0 */
  912.     digiOutDoesSkew                = 1L << 18,                        /* digitizer supports skew = shear,twist, */
  913.     digiOutDoesBlend            = 1L << 19,
  914.     digiOutDoesWarp                = 1L << 20,
  915.     digiOutDoesHW_DMA            = 1L << 21,                        /* digitizer not constrained to local device */
  916.     digiOutDoesHWPlayThru        = 1L << 22,                        /* digitizer doesn't need time to play thru */
  917.     digiOutDoesILUT                = 1L << 23,                        /* digitizer does inverse LUT for index modes */
  918.     digiOutDoesKeyColor            = 1L << 24,                        /* digitizer does key color functions too */
  919.     digiOutDoesAsyncGrabs        = 1L << 25,                        /* digitizer supports async grabs */
  920.     digiOutDoesUnreadableScreenBits = 1L << 26,                    /* playthru doesn't generate readable bits on screen*/
  921.     digiOutDoesCompress            = 1L << 27,                        /* supports alternate output data types */
  922.     digiOutDoesCompressOnly        = 1L << 28,                        /* can't provide raw frames anywhere */
  923.     digiOutDoesPlayThruDuringCompress = 1L << 29,                /* digi can do playthru while providing compressed data */
  924.     digiOutDoesCompressPartiallyVisible = 1L << 30                /* digi doesn't need all bits visible on screen to do hardware compress */
  925. };
  926.  
  927. /* Types */
  928. typedef ComponentInstance VideoDigitizerComponent;
  929. typedef ComponentResult VideoDigitizerError;
  930. struct DigitizerInfo {
  931.     short                             vdigType;
  932.     long                             inputCapabilityFlags;
  933.     long                             outputCapabilityFlags;
  934.     long                             inputCurrentFlags;
  935.     long                             outputCurrentFlags;
  936.     short                             slot;                        /* temporary for connection purposes */
  937.     GDHandle                         gdh;                        /* temporary for digitizers that have preferred screen */
  938.     GDHandle                         maskgdh;                    /* temporary for digitizers that have mask planes */
  939.     short                             minDestHeight;                /* Smallest resizable height */
  940.     short                             minDestWidth;                /* Smallest resizable width */
  941.     short                             maxDestHeight;                /* Largest resizable height */
  942.     short                             maxDestWidth;                /* Largest resizable height */
  943.     short                             blendLevels;                /* Number of blend levels supported (2 if 1 bit mask) */
  944.     long                             reserved;                    /* reserved */
  945. };
  946. typedef struct DigitizerInfo DigitizerInfo;
  947.  
  948. struct VdigType {
  949.     long                             digType;
  950.     long                             reserved;
  951. };
  952. typedef struct VdigType VdigType;
  953.  
  954. struct VdigTypeList {
  955.     short                             count;
  956.     VdigType                         list[1];
  957. };
  958. typedef struct VdigTypeList VdigTypeList;
  959.  
  960. struct VdigBufferRec {
  961.     PixMapHandle                     dest;
  962.     Point                             location;
  963.     long                             reserved;
  964. };
  965. typedef struct VdigBufferRec VdigBufferRec;
  966.  
  967. struct VdigBufferRecList {
  968.     short                             count;
  969.     MatrixRecordPtr                 matrix;
  970.     RgnHandle                         mask;
  971.     VdigBufferRec                     list[1];
  972. };
  973. typedef struct VdigBufferRecList VdigBufferRecList;
  974.  
  975. typedef VdigBufferRecList *VdigBufferRecListPtr;
  976. typedef VdigBufferRecListPtr *VdigBufferRecListHandle;
  977. typedef pascal void (*VdigIntProcPtr)(long flags, long refcon);
  978.  
  979. #if GENERATINGCFM
  980. typedef UniversalProcPtr VdigIntUPP;
  981. #else
  982. typedef VdigIntProcPtr VdigIntUPP;
  983. #endif
  984. struct VDCompressionList {
  985.     CodecComponent                     codec;
  986.     CodecType                         cType;
  987.     Str63                             typeName;
  988.     Str63                             name;
  989.     long                             formatFlags;
  990.     long                             compressFlags;
  991.     long                             reserved;
  992. };
  993. typedef struct VDCompressionList VDCompressionList;
  994.  
  995. typedef VDCompressionList *VDCompressionListPtr;
  996. typedef VDCompressionListPtr *VDCompressionListHandle;
  997.  
  998. enum {
  999.     dmaDepth1                    = 1,
  1000.     dmaDepth2                    = 2,
  1001.     dmaDepth4                    = 4,
  1002.     dmaDepth8                    = 8,
  1003.     dmaDepth16                    = 16,
  1004.     dmaDepth32                    = 32,
  1005.     dmaDepth2Gray                = 64,
  1006.     dmaDepth4Gray                = 128,
  1007.     dmaDepth8Gray                = 256
  1008. };
  1009.  
  1010.  
  1011. enum {
  1012.     kVDIGControlledFrameRate    = -1
  1013. };
  1014.  
  1015. extern pascal VideoDigitizerError VDGetMaxSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *maxSrcRect)
  1016.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0001, 0x7000, 0xA82A);
  1017.  
  1018. extern pascal VideoDigitizerError VDGetActiveSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *activeSrcRect)
  1019.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
  1020.  
  1021. extern pascal VideoDigitizerError VDSetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect)
  1022.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  1023.  
  1024. extern pascal VideoDigitizerError VDGetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect)
  1025.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A);
  1026.  
  1027. extern pascal VideoDigitizerError VDGetVBlankRect(VideoDigitizerComponent ci, short inputStd, Rect *vBlankRect)
  1028.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0005, 0x7000, 0xA82A);
  1029.  
  1030. extern pascal VideoDigitizerError VDGetMaskPixMap(VideoDigitizerComponent ci, PixMapHandle maskPixMap)
  1031.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A);
  1032.  
  1033. extern pascal VideoDigitizerError VDGetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle *dest, Rect *destRect, MatrixRecord *m, RgnHandle *mask)
  1034.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0008, 0x7000, 0xA82A);
  1035.  
  1036. extern pascal VideoDigitizerError VDUseThisCLUT(VideoDigitizerComponent ci, CTabHandle colorTableHandle)
  1037.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A);
  1038.  
  1039. extern pascal VideoDigitizerError VDSetInputGammaValue(VideoDigitizerComponent ci, Fixed channel1, Fixed channel2, Fixed channel3)
  1040.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000A, 0x7000, 0xA82A);
  1041.  
  1042. extern pascal VideoDigitizerError VDGetInputGammaValue(VideoDigitizerComponent ci, Fixed *channel1, Fixed *channel2, Fixed *channel3)
  1043.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A);
  1044.  
  1045. extern pascal VideoDigitizerError VDSetBrightness(VideoDigitizerComponent ci, unsigned short *brightness)
  1046.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  1047.  
  1048. extern pascal VideoDigitizerError VDGetBrightness(VideoDigitizerComponent ci, unsigned short *brightness)
  1049.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  1050.  
  1051. extern pascal VideoDigitizerError VDSetContrast(VideoDigitizerComponent ci, unsigned short *contrast)
  1052.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A);
  1053.  
  1054. extern pascal VideoDigitizerError VDSetHue(VideoDigitizerComponent ci, unsigned short *hue)
  1055.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  1056.  
  1057. extern pascal VideoDigitizerError VDSetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness)
  1058.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
  1059.  
  1060. extern pascal VideoDigitizerError VDSetSaturation(VideoDigitizerComponent ci, unsigned short *saturation)
  1061.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A);
  1062.  
  1063. extern pascal VideoDigitizerError VDGetContrast(VideoDigitizerComponent ci, unsigned short *contrast)
  1064.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  1065.  
  1066. extern pascal VideoDigitizerError VDGetHue(VideoDigitizerComponent ci, unsigned short *hue)
  1067.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  1068.  
  1069. extern pascal VideoDigitizerError VDGetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness)
  1070.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  1071.  
  1072. extern pascal VideoDigitizerError VDGetSaturation(VideoDigitizerComponent ci, unsigned short *saturation)
  1073.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  1074.  
  1075. extern pascal VideoDigitizerError VDGrabOneFrame(VideoDigitizerComponent ci)
  1076.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A);
  1077.  
  1078. extern pascal VideoDigitizerError VDGetMaxAuxBuffer(VideoDigitizerComponent ci, PixMapHandle *pm, Rect *r)
  1079.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A);
  1080.  
  1081. extern pascal VideoDigitizerError VDGetDigitizerInfo(VideoDigitizerComponent ci, DigitizerInfo *info)
  1082.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  1083.  
  1084. extern pascal VideoDigitizerError VDGetCurrentFlags(VideoDigitizerComponent ci, long *inputCurrentFlag, long *outputCurrentFlag)
  1085.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x001A, 0x7000, 0xA82A);
  1086.  
  1087. extern pascal VideoDigitizerError VDSetKeyColor(VideoDigitizerComponent ci, long index)
  1088.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  1089.  
  1090. extern pascal VideoDigitizerError VDGetKeyColor(VideoDigitizerComponent ci, long *index)
  1091.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  1092.  
  1093. extern pascal VideoDigitizerError VDAddKeyColor(VideoDigitizerComponent ci, long *index)
  1094.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A);
  1095.  
  1096. extern pascal VideoDigitizerError VDGetNextKeyColor(VideoDigitizerComponent ci, long index)
  1097.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  1098.  
  1099. extern pascal VideoDigitizerError VDSetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB)
  1100.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x001F, 0x7000, 0xA82A);
  1101.  
  1102. extern pascal VideoDigitizerError VDGetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB)
  1103.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
  1104.  
  1105. extern pascal VideoDigitizerError VDSetDigitizerUserInterrupt(VideoDigitizerComponent ci, long flags, VdigIntUPP userInterruptProc, long refcon)
  1106.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0021, 0x7000, 0xA82A);
  1107.  
  1108. extern pascal VideoDigitizerError VDSetInputColorSpaceMode(VideoDigitizerComponent ci, short colorSpaceMode)
  1109.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0022, 0x7000, 0xA82A);
  1110.  
  1111. extern pascal VideoDigitizerError VDGetInputColorSpaceMode(VideoDigitizerComponent ci, short *colorSpaceMode)
  1112.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0023, 0x7000, 0xA82A);
  1113.  
  1114. extern pascal VideoDigitizerError VDSetClipState(VideoDigitizerComponent ci, short clipEnable)
  1115.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0024, 0x7000, 0xA82A);
  1116.  
  1117. extern pascal VideoDigitizerError VDGetClipState(VideoDigitizerComponent ci, short *clipEnable)
  1118.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  1119.  
  1120. extern pascal VideoDigitizerError VDSetClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion)
  1121.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A);
  1122.  
  1123. extern pascal VideoDigitizerError VDClearClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion)
  1124.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  1125.  
  1126. extern pascal VideoDigitizerError VDGetCLUTInUse(VideoDigitizerComponent ci, CTabHandle *colorTableHandle)
  1127.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  1128.  
  1129. extern pascal VideoDigitizerError VDSetPLLFilterType(VideoDigitizerComponent ci, short pllType)
  1130.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0029, 0x7000, 0xA82A);
  1131.  
  1132. extern pascal VideoDigitizerError VDGetPLLFilterType(VideoDigitizerComponent ci, short *pllType)
  1133.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A);
  1134.  
  1135. extern pascal VideoDigitizerError VDGetMaskandValue(VideoDigitizerComponent ci, unsigned short blendLevel, long *mask, long *value)
  1136.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x002B, 0x7000, 0xA82A);
  1137.  
  1138. extern pascal VideoDigitizerError VDSetMasterBlendLevel(VideoDigitizerComponent ci, unsigned short *blendLevel)
  1139.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A);
  1140.  
  1141. extern pascal VideoDigitizerError VDSetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle dest, Rect *destRect, MatrixRecord *m, RgnHandle mask)
  1142.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x002D, 0x7000, 0xA82A);
  1143.  
  1144. extern pascal VideoDigitizerError VDSetPlayThruOnOff(VideoDigitizerComponent ci, short state)
  1145.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x002E, 0x7000, 0xA82A);
  1146.  
  1147. extern pascal VideoDigitizerError VDSetFieldPreference(VideoDigitizerComponent ci, short fieldFlag)
  1148.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x002F, 0x7000, 0xA82A);
  1149.  
  1150. extern pascal VideoDigitizerError VDGetFieldPreference(VideoDigitizerComponent ci, short *fieldFlag)
  1151.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A);
  1152.  
  1153. extern pascal VideoDigitizerError VDPreflightDestination(VideoDigitizerComponent ci, Rect *digitizerRect, PixMap **dest, Rect *destRect, MatrixRecord *m)
  1154.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0032, 0x7000, 0xA82A);
  1155.  
  1156. extern pascal VideoDigitizerError VDPreflightGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect)
  1157.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A);
  1158.  
  1159. extern pascal VideoDigitizerError VDSetPlayThruGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect)
  1160.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A);
  1161.  
  1162. extern pascal VideoDigitizerError VDSetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr inputGammaPtr)
  1163.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0035, 0x7000, 0xA82A);
  1164.  
  1165. extern pascal VideoDigitizerError VDGetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr *inputGammaPtr)
  1166.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0036, 0x7000, 0xA82A);
  1167.  
  1168. extern pascal VideoDigitizerError VDSetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel)
  1169.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0037, 0x7000, 0xA82A);
  1170.  
  1171. extern pascal VideoDigitizerError VDGetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel)
  1172.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0038, 0x7000, 0xA82A);
  1173.  
  1174. extern pascal VideoDigitizerError VDSetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel)
  1175.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0039, 0x7000, 0xA82A);
  1176.  
  1177. extern pascal VideoDigitizerError VDGetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel)
  1178.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x003A, 0x7000, 0xA82A);
  1179.  
  1180. extern pascal VideoDigitizerError VDGetVideoDefaults(VideoDigitizerComponent ci, unsigned short *blackLevel, unsigned short *whiteLevel, unsigned short *brightness, unsigned short *hue, unsigned short *saturation, unsigned short *contrast, unsigned short *sharpness)
  1181.  FIVEWORDINLINE(0x2F3C, 0x001C, 0x003B, 0x7000, 0xA82A);
  1182.  
  1183. extern pascal VideoDigitizerError VDGetNumberOfInputs(VideoDigitizerComponent ci, short *inputs)
  1184.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x003C, 0x7000, 0xA82A);
  1185.  
  1186. extern pascal VideoDigitizerError VDGetInputFormat(VideoDigitizerComponent ci, short input, short *format)
  1187.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x003D, 0x7000, 0xA82A);
  1188.  
  1189. extern pascal VideoDigitizerError VDSetInput(VideoDigitizerComponent ci, short input)
  1190.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x003E, 0x7000, 0xA82A);
  1191.  
  1192. extern pascal VideoDigitizerError VDGetInput(VideoDigitizerComponent ci, short *input)
  1193.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x003F, 0x7000, 0xA82A);
  1194.  
  1195. extern pascal VideoDigitizerError VDSetInputStandard(VideoDigitizerComponent ci, short inputStandard)
  1196.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0040, 0x7000, 0xA82A);
  1197.  
  1198. extern pascal VideoDigitizerError VDSetupBuffers(VideoDigitizerComponent ci, VdigBufferRecListHandle bufferList)
  1199.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0041, 0x7000, 0xA82A);
  1200.  
  1201. extern pascal VideoDigitizerError VDGrabOneFrameAsync(VideoDigitizerComponent ci, short buffer)
  1202.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0042, 0x7000, 0xA82A);
  1203.  
  1204. extern pascal VideoDigitizerError VDDone(VideoDigitizerComponent ci, short buffer)
  1205.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0043, 0x7000, 0xA82A);
  1206.  
  1207. extern pascal VideoDigitizerError VDSetCompression(VideoDigitizerComponent ci, OSType compressType, short depth, Rect *bounds, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate)
  1208.  FIVEWORDINLINE(0x2F3C, 0x0016, 0x0044, 0x7000, 0xA82A);
  1209.  
  1210. extern pascal VideoDigitizerError VDCompressOneFrameAsync(VideoDigitizerComponent ci)
  1211.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0045, 0x7000, 0xA82A);
  1212.  
  1213. extern pascal VideoDigitizerError VDCompressDone(VideoDigitizerComponent ci, Boolean *done, Ptr *theData, long *dataSize, UInt8 *similarity, TimeRecord *t)
  1214.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0046, 0x7000, 0xA82A);
  1215.  
  1216. extern pascal VideoDigitizerError VDReleaseCompressBuffer(VideoDigitizerComponent ci, Ptr bufferAddr)
  1217.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0047, 0x7000, 0xA82A);
  1218.  
  1219. extern pascal VideoDigitizerError VDGetImageDescription(VideoDigitizerComponent ci, ImageDescriptionHandle desc)
  1220.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0048, 0x7000, 0xA82A);
  1221.  
  1222. extern pascal VideoDigitizerError VDResetCompressSequence(VideoDigitizerComponent ci)
  1223.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0049, 0x7000, 0xA82A);
  1224.  
  1225. extern pascal VideoDigitizerError VDSetCompressionOnOff(VideoDigitizerComponent ci, Boolean state)
  1226.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x004A, 0x7000, 0xA82A);
  1227.  
  1228. extern pascal VideoDigitizerError VDGetCompressionTypes(VideoDigitizerComponent ci, VDCompressionListHandle h)
  1229.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x004B, 0x7000, 0xA82A);
  1230.  
  1231. extern pascal VideoDigitizerError VDSetTimeBase(VideoDigitizerComponent ci, TimeBase t)
  1232.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x004C, 0x7000, 0xA82A);
  1233.  
  1234. extern pascal VideoDigitizerError VDSetFrameRate(VideoDigitizerComponent ci, Fixed framesPerSecond)
  1235.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x004D, 0x7000, 0xA82A);
  1236.  
  1237. extern pascal VideoDigitizerError VDGetDataRate(VideoDigitizerComponent ci, long *milliSecPerFrame, Fixed *framesPerSecond, long *bytesPerSecond)
  1238.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x004E, 0x7000, 0xA82A);
  1239.  
  1240. extern pascal VideoDigitizerError VDGetSoundInputDriver(VideoDigitizerComponent ci, Str255 soundDriverName)
  1241.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x004F, 0x7000, 0xA82A);
  1242.  
  1243. extern pascal VideoDigitizerError VDGetDMADepths(VideoDigitizerComponent ci, long *depthArray, long *preferredDepth)
  1244.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0050, 0x7000, 0xA82A);
  1245.  
  1246. extern pascal VideoDigitizerError VDGetPreferredTimeScale(VideoDigitizerComponent ci, TimeScale *preferred)
  1247.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0051, 0x7000, 0xA82A);
  1248.  
  1249. extern pascal VideoDigitizerError VDReleaseAsyncBuffers(VideoDigitizerComponent ci)
  1250.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0052, 0x7000, 0xA82A);
  1251.  
  1252. /* 83 is reserved for compatibility reasons */
  1253. extern pascal VideoDigitizerError VDSetDataRate(VideoDigitizerComponent ci, long bytesPerSecond)
  1254.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0054, 0x7000, 0xA82A);
  1255.  
  1256. extern pascal VideoDigitizerError VDGetTimeCode(VideoDigitizerComponent ci, TimeRecord *atTime, void *timeCodeFormat, void *timeCodeTime)
  1257.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0055, 0x7000, 0xA82A);
  1258.  
  1259. extern pascal VideoDigitizerError VDUseSafeBuffers(VideoDigitizerComponent ci, Boolean useSafeBuffers)
  1260.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0056, 0x7000, 0xA82A);
  1261.  
  1262. extern pascal VideoDigitizerError VDGetSoundInputSource(VideoDigitizerComponent ci, long videoInput, long *soundInput)
  1263.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0057, 0x7000, 0xA82A);
  1264.  
  1265. extern pascal VideoDigitizerError VDGetCompressionTime(VideoDigitizerComponent ci, OSType compressionType, short depth, Rect *srcRect, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *compressTime)
  1266.  FIVEWORDINLINE(0x2F3C, 0x0016, 0x0058, 0x7000, 0xA82A);
  1267.  
  1268. /*
  1269.     General Sequence Grab stuff
  1270. */
  1271. typedef ComponentInstance SeqGrabComponent;
  1272. typedef ComponentInstance SGChannel;
  1273.  
  1274. enum {
  1275.     SeqGrabComponentType        = 'barg',
  1276.     SeqGrabChannelType            = 'sgch',
  1277.     SeqGrabPanelType            = 'sgpn',
  1278.     SeqGrabCompressionPanelType    = 'cmpr',
  1279.     SeqGrabSourcePanelType        = 'sour'
  1280. };
  1281.  
  1282.  
  1283. enum {
  1284.     seqGrabToDisk                = 1,
  1285.     seqGrabToMemory                = 2,
  1286.     seqGrabDontUseTempMemory    = 4,
  1287.     seqGrabAppendToFile            = 8,
  1288.     seqGrabDontAddMovieResource    = 16,
  1289.     seqGrabDontMakeMovie        = 32,
  1290.     seqGrabPreExtendFile        = 64,
  1291.     seqGrabDataProcIsInterruptSafe = 128,
  1292.     seqGrabDataProcDoesOverlappingReads = 256
  1293. };
  1294.  
  1295. typedef unsigned long SeqGrabDataOutputEnum;
  1296.  
  1297. enum {
  1298.     seqGrabRecord                = 1,
  1299.     seqGrabPreview                = 2,
  1300.     seqGrabPlayDuringRecord        = 4
  1301. };
  1302.  
  1303. typedef unsigned long SeqGrabUsageEnum;
  1304.  
  1305. enum {
  1306.     seqGrabHasBounds            = 1,
  1307.     seqGrabHasVolume            = 2,
  1308.     seqGrabHasDiscreteSamples    = 4
  1309. };
  1310.  
  1311. typedef unsigned long SeqGrabChannelInfoEnum;
  1312. struct SeqGrabFrameInfo {
  1313.     long                             frameOffset;
  1314.     long                             frameTime;
  1315.     long                             frameSize;
  1316.     SGChannel                         frameChannel;
  1317.     long                             frameRefCon;
  1318. };
  1319. typedef struct SeqGrabFrameInfo SeqGrabFrameInfo;
  1320.  
  1321. typedef SeqGrabFrameInfo *SeqGrabFrameInfoPtr;
  1322.  
  1323. enum {
  1324.     grabPictOffScreen            = 1,
  1325.     grabPictIgnoreClip            = 2,
  1326.     grabPictCurrentImage        = 4
  1327. };
  1328.  
  1329.  
  1330. enum {
  1331.     sgFlagControlledGrab        = (1 << 0)
  1332. };
  1333.  
  1334. typedef pascal OSErr (*SGDataProcPtr)(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon);
  1335.  
  1336. #if GENERATINGCFM
  1337. typedef UniversalProcPtr SGDataUPP;
  1338. #else
  1339. typedef SGDataProcPtr SGDataUPP;
  1340. #endif
  1341. struct SGDeviceName {
  1342.     Str63                             name;
  1343.     Handle                             icon;
  1344.     long                             flags;
  1345.     long                             refCon;
  1346.     long                             reserved;                    /* zero*/
  1347. };
  1348. typedef struct SGDeviceName SGDeviceName;
  1349.  
  1350.  
  1351. enum {
  1352.     sgDeviceNameFlagDeviceUnavailable = (1 << 0)
  1353. };
  1354.  
  1355. struct SGDeviceListRecord {
  1356.     short                             count;
  1357.     short                             selectedIndex;
  1358.     long                             reserved;                    /* zero*/
  1359.     SGDeviceName                     entry[1];
  1360. };
  1361. typedef struct SGDeviceListRecord SGDeviceListRecord;
  1362.  
  1363. typedef SGDeviceListRecord *SGDeviceListPtr;
  1364. typedef SGDeviceListPtr *SGDeviceList;
  1365.  
  1366. enum {
  1367.     sgDeviceListWithIcons        = (1 << 0),
  1368.     sgDeviceListDontCheckAvailability = (1 << 1)
  1369. };
  1370.  
  1371.  
  1372. enum {
  1373.     seqGrabWriteAppend            = 0,
  1374.     seqGrabWriteReserve            = 1,
  1375.     seqGrabWriteFill            = 2
  1376. };
  1377.  
  1378.  
  1379. enum {
  1380.     seqGrabUnpause                = 0,
  1381.     seqGrabPause                = 1,
  1382.     seqGrabPauseForMenu            = 3
  1383. };
  1384.  
  1385.  
  1386. enum {
  1387.     channelFlagDontOpenResFile    = 2,
  1388.     channelFlagHasDependency    = 4
  1389. };
  1390.  
  1391. typedef pascal Boolean (*SGModalFilterProcPtr)(DialogPtr theDialog, EventRecord *theEvent, short *itemHit, long refCon);
  1392.  
  1393. #if GENERATINGCFM
  1394. typedef UniversalProcPtr SGModalFilterUPP;
  1395. #else
  1396. typedef SGModalFilterProcPtr SGModalFilterUPP;
  1397. #endif
  1398.  
  1399. enum {
  1400.     sgPanelFlagForPanel            = 1
  1401. };
  1402.  
  1403.  
  1404. enum {
  1405.     seqGrabSettingsPreviewOnly    = 1
  1406. };
  1407.  
  1408. struct SGOutputRecord {
  1409.     long                             data[1];
  1410. };
  1411. typedef struct SGOutputRecord SGOutputRecord;
  1412.  
  1413. typedef SGOutputRecord *SGOutput;
  1414.  
  1415. enum {
  1416.     channelPlayNormal            = 0,
  1417.     channelPlayFast                = 1,
  1418.     channelPlayHighQuality        = 2,
  1419.     channelPlayAllData            = 4
  1420. };
  1421.  
  1422. extern pascal ComponentResult SGInitialize(SeqGrabComponent s)
  1423.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0001, 0x7000, 0xA82A);
  1424.  
  1425. extern pascal ComponentResult SGSetDataOutput(SeqGrabComponent s, const FSSpec *movieFile, long whereFlags)
  1426.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  1427.  
  1428. extern pascal ComponentResult SGGetDataOutput(SeqGrabComponent s, FSSpec *movieFile, long *whereFlags)
  1429.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A);
  1430.  
  1431. extern pascal ComponentResult SGSetGWorld(SeqGrabComponent s, CGrafPtr gp, GDHandle gd)
  1432.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  1433.  
  1434. extern pascal ComponentResult SGGetGWorld(SeqGrabComponent s, CGrafPtr *gp, GDHandle *gd)
  1435.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  1436.  
  1437. extern pascal ComponentResult SGNewChannel(SeqGrabComponent s, OSType channelType, SGChannel *ref)
  1438.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A);
  1439.  
  1440. extern pascal ComponentResult SGDisposeChannel(SeqGrabComponent s, SGChannel c)
  1441.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  1442.  
  1443. extern pascal ComponentResult SGStartPreview(SeqGrabComponent s)
  1444.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A);
  1445.  
  1446. extern pascal ComponentResult SGStartRecord(SeqGrabComponent s)
  1447.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A);
  1448.  
  1449. extern pascal ComponentResult SGIdle(SeqGrabComponent s)
  1450.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A);
  1451.  
  1452. extern pascal ComponentResult SGStop(SeqGrabComponent s)
  1453.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0013, 0x7000, 0xA82A);
  1454.  
  1455. extern pascal ComponentResult SGPause(SeqGrabComponent s, Byte pause)
  1456.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0014, 0x7000, 0xA82A);
  1457.  
  1458. extern pascal ComponentResult SGPrepare(SeqGrabComponent s, Boolean prepareForPreview, Boolean prepareForRecord)
  1459.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  1460.  
  1461. extern pascal ComponentResult SGRelease(SeqGrabComponent s)
  1462.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A);
  1463.  
  1464. extern pascal Movie SGGetMovie(SeqGrabComponent s)
  1465.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0017, 0x7000, 0xA82A);
  1466.  
  1467. extern pascal ComponentResult SGSetMaximumRecordTime(SeqGrabComponent s, unsigned long ticks)
  1468.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  1469.  
  1470. extern pascal ComponentResult SGGetMaximumRecordTime(SeqGrabComponent s, unsigned long *ticks)
  1471.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  1472.  
  1473. extern pascal ComponentResult SGGetStorageSpaceRemaining(SeqGrabComponent s, unsigned long *bytes)
  1474.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  1475.  
  1476. extern pascal ComponentResult SGGetTimeRemaining(SeqGrabComponent s, long *ticksLeft)
  1477.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  1478.  
  1479. extern pascal ComponentResult SGGrabPict(SeqGrabComponent s, PicHandle *p, const Rect *bounds, short offscreenDepth, long grabPictFlags)
  1480.  FIVEWORDINLINE(0x2F3C, 0x000E, 0x001C, 0x7000, 0xA82A);
  1481.  
  1482. extern pascal ComponentResult SGGetLastMovieResID(SeqGrabComponent s, short *resID)
  1483.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A);
  1484.  
  1485. extern pascal ComponentResult SGSetFlags(SeqGrabComponent s, long sgFlags)
  1486.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  1487.  
  1488. extern pascal ComponentResult SGGetFlags(SeqGrabComponent s, long *sgFlags)
  1489.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  1490.  
  1491. extern pascal ComponentResult SGSetDataProc(SeqGrabComponent s, SGDataUPP proc, long refCon)
  1492.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
  1493.  
  1494. extern pascal ComponentResult SGNewChannelFromComponent(SeqGrabComponent s, SGChannel *newChannel, Component sgChannelComponent)
  1495.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A);
  1496.  
  1497. extern pascal ComponentResult SGDisposeDeviceList(SeqGrabComponent s, SGDeviceList list)
  1498.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A);
  1499.  
  1500. extern pascal ComponentResult SGAppendDeviceListToMenu(SeqGrabComponent s, SGDeviceList list, MenuHandle mh)
  1501.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0023, 0x7000, 0xA82A);
  1502.  
  1503. extern pascal ComponentResult SGSetSettings(SeqGrabComponent s, UserData ud, long flags)
  1504.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A);
  1505.  
  1506. extern pascal ComponentResult SGGetSettings(SeqGrabComponent s, UserData *ud, long flags)
  1507.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0025, 0x7000, 0xA82A);
  1508.  
  1509. extern pascal ComponentResult SGGetIndChannel(SeqGrabComponent s, short index, SGChannel *ref, OSType *chanType)
  1510.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0026, 0x7000, 0xA82A);
  1511.  
  1512. extern pascal ComponentResult SGUpdate(SeqGrabComponent s, RgnHandle updateRgn)
  1513.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  1514.  
  1515. extern pascal ComponentResult SGGetPause(SeqGrabComponent s, Byte *paused)
  1516.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  1517.  
  1518. extern pascal ComponentResult SGSettingsDialog(SeqGrabComponent s, SGChannel c, short numPanels, Component *panelList, long flags, SGModalFilterUPP proc, long procRefNum)
  1519.  FIVEWORDINLINE(0x2F3C, 0x0016, 0x0029, 0x7000, 0xA82A);
  1520.  
  1521. extern pascal ComponentResult SGGetAlignmentProc(SeqGrabComponent s, ICMAlignmentProcRecordPtr alignmentProc)
  1522.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A);
  1523.  
  1524. extern pascal ComponentResult SGSetChannelSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags)
  1525.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x002B, 0x7000, 0xA82A);
  1526.  
  1527. extern pascal ComponentResult SGGetChannelSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags)
  1528.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x002C, 0x7000, 0xA82A);
  1529.  
  1530. extern pascal ComponentResult SGGetMode(SeqGrabComponent s, Boolean *previewMode, Boolean *recordMode)
  1531.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A);
  1532.  
  1533. extern pascal ComponentResult SGSetDataRef(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags)
  1534.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x002E, 0x7000, 0xA82A);
  1535.  
  1536. extern pascal ComponentResult SGGetDataRef(SeqGrabComponent s, Handle *dataRef, OSType *dataRefType, long *whereFlags)
  1537.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x002F, 0x7000, 0xA82A);
  1538.  
  1539. extern pascal ComponentResult SGNewOutput(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags, SGOutput *sgOut)
  1540.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0030, 0x7000, 0xA82A);
  1541.  
  1542. extern pascal ComponentResult SGDisposeOutput(SeqGrabComponent s, SGOutput sgOut)
  1543.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0031, 0x7000, 0xA82A);
  1544.  
  1545. extern pascal ComponentResult SGSetOutputFlags(SeqGrabComponent s, SGOutput sgOut, long whereFlags)
  1546.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A);
  1547.  
  1548. extern pascal ComponentResult SGSetChannelOutput(SeqGrabComponent s, SGChannel c, SGOutput sgOut)
  1549.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A);
  1550.  
  1551. extern pascal ComponentResult SGGetDataOutputStorageSpaceRemaining(SeqGrabComponent s, SGOutput sgOut, unsigned long *space)
  1552.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A);
  1553.  
  1554. /*
  1555.     calls from Channel to seqGrab
  1556. */
  1557. extern pascal ComponentResult SGWriteMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset)
  1558.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0100, 0x7000, 0xA82A);
  1559.  
  1560. extern pascal ComponentResult SGAddFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo)
  1561.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1562.  
  1563. extern pascal ComponentResult SGGetNextFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo, TimeValue *frameDuration, long *frameNumber)
  1564.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0102, 0x7000, 0xA82A);
  1565.  
  1566. extern pascal ComponentResult SGGetTimeBase(SeqGrabComponent s, TimeBase *tb)
  1567.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1568.  
  1569. extern pascal ComponentResult SGSortDeviceList(SeqGrabComponent s, SGDeviceList list)
  1570.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  1571.  
  1572. extern pascal ComponentResult SGAddMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType)
  1573.  FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A);
  1574.  
  1575. extern pascal ComponentResult SGChangedSource(SeqGrabComponent s, SGChannel c)
  1576.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0106, 0x7000, 0xA82A);
  1577.  
  1578. /*** Sequence Grab CHANNEL Component Stuff ***/
  1579. extern pascal ComponentResult SGSetChannelUsage(SGChannel c, long usage)
  1580.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0080, 0x7000, 0xA82A);
  1581.  
  1582. extern pascal ComponentResult SGGetChannelUsage(SGChannel c, long *usage)
  1583.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0081, 0x7000, 0xA82A);
  1584.  
  1585. extern pascal ComponentResult SGSetChannelBounds(SGChannel c, const Rect *bounds)
  1586.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0082, 0x7000, 0xA82A);
  1587.  
  1588. extern pascal ComponentResult SGGetChannelBounds(SGChannel c, Rect *bounds)
  1589.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0083, 0x7000, 0xA82A);
  1590.  
  1591. extern pascal ComponentResult SGSetChannelVolume(SGChannel c, short volume)
  1592.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0084, 0x7000, 0xA82A);
  1593.  
  1594. extern pascal ComponentResult SGGetChannelVolume(SGChannel c, short *volume)
  1595.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0085, 0x7000, 0xA82A);
  1596.  
  1597. extern pascal ComponentResult SGGetChannelInfo(SGChannel c, long *channelInfo)
  1598.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0086, 0x7000, 0xA82A);
  1599.  
  1600. extern pascal ComponentResult SGSetChannelPlayFlags(SGChannel c, long playFlags)
  1601.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A);
  1602.  
  1603. extern pascal ComponentResult SGGetChannelPlayFlags(SGChannel c, long *playFlags)
  1604.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0088, 0x7000, 0xA82A);
  1605.  
  1606. extern pascal ComponentResult SGSetChannelMaxFrames(SGChannel c, long frameCount)
  1607.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0089, 0x7000, 0xA82A);
  1608.  
  1609. extern pascal ComponentResult SGGetChannelMaxFrames(SGChannel c, long *frameCount)
  1610.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008A, 0x7000, 0xA82A);
  1611.  
  1612. extern pascal ComponentResult SGSetChannelRefCon(SGChannel c, long refCon)
  1613.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008B, 0x7000, 0xA82A);
  1614.  
  1615. extern pascal ComponentResult SGSetChannelClip(SGChannel c, RgnHandle theClip)
  1616.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008C, 0x7000, 0xA82A);
  1617.  
  1618. extern pascal ComponentResult SGGetChannelClip(SGChannel c, RgnHandle *theClip)
  1619.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008D, 0x7000, 0xA82A);
  1620.  
  1621. extern pascal ComponentResult SGGetChannelSampleDescription(SGChannel c, Handle sampleDesc)
  1622.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x008E, 0x7000, 0xA82A);
  1623.  
  1624. extern pascal ComponentResult SGGetChannelDeviceList(SGChannel c, long selectionFlags, SGDeviceList *list)
  1625.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x008F, 0x7000, 0xA82A);
  1626.  
  1627. extern pascal ComponentResult SGSetChannelDevice(SGChannel c, StringPtr name)
  1628.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0090, 0x7000, 0xA82A);
  1629.  
  1630. extern pascal ComponentResult SGSetChannelMatrix(SGChannel c, const MatrixRecord *m)
  1631.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0091, 0x7000, 0xA82A);
  1632.  
  1633. extern pascal ComponentResult SGGetChannelMatrix(SGChannel c, MatrixRecord *m)
  1634.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0092, 0x7000, 0xA82A);
  1635.  
  1636. extern pascal ComponentResult SGGetChannelTimeScale(SGChannel c, TimeScale *scale)
  1637.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0093, 0x7000, 0xA82A);
  1638.  
  1639. extern pascal ComponentResult SGChannelPutPicture(SGChannel c)
  1640.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0094, 0x7000, 0xA82A);
  1641.  
  1642. extern pascal ComponentResult SGChannelSetRequestedDataRate(SGChannel c, long bytesPerSecond)
  1643.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0095, 0x7000, 0xA82A);
  1644.  
  1645. extern pascal ComponentResult SGChannelGetRequestedDataRate(SGChannel c, long *bytesPerSecond)
  1646.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0096, 0x7000, 0xA82A);
  1647.  
  1648. extern pascal ComponentResult SGChannelSetDataSourceName(SGChannel c, ConstStr255Param name, ScriptCode scriptTag)
  1649.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0097, 0x7000, 0xA82A);
  1650.  
  1651. extern pascal ComponentResult SGChannelGetDataSourceName(SGChannel c, Str255 name, ScriptCode *scriptTag)
  1652.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0098, 0x7000, 0xA82A);
  1653.  
  1654. /*
  1655.     calls from seqGrab to Channel
  1656. */
  1657. extern pascal ComponentResult SGInitChannel(SGChannel c, SeqGrabComponent owner)
  1658.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0180, 0x7000, 0xA82A);
  1659.  
  1660. extern pascal ComponentResult SGWriteSamples(SGChannel c, Movie m, AliasHandle theFile)
  1661.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0181, 0x7000, 0xA82A);
  1662.  
  1663. extern pascal ComponentResult SGGetDataRate(SGChannel c, long *bytesPerSecond)
  1664.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0182, 0x7000, 0xA82A);
  1665.  
  1666. extern pascal ComponentResult SGAlignChannelRect(SGChannel c, Rect *r)
  1667.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0183, 0x7000, 0xA82A);
  1668.  
  1669. /*
  1670.     Dorky dialog panel calls
  1671. */
  1672. extern pascal ComponentResult SGPanelGetDitl(SeqGrabComponent s, Handle *ditl)
  1673.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0200, 0x7000, 0xA82A);
  1674.  
  1675. extern pascal ComponentResult SGPanelGetTitle(SeqGrabComponent s, Str255 title)
  1676.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0201, 0x7000, 0xA82A);
  1677.  
  1678. extern pascal ComponentResult SGPanelCanRun(SeqGrabComponent s, SGChannel c)
  1679.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0202, 0x7000, 0xA82A);
  1680.  
  1681. extern pascal ComponentResult SGPanelInstall(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset)
  1682.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0203, 0x7000, 0xA82A);
  1683.  
  1684. extern pascal ComponentResult SGPanelEvent(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, EventRecord *theEvent, short *itemHit, Boolean *handled)
  1685.  FIVEWORDINLINE(0x2F3C, 0x0016, 0x0204, 0x7000, 0xA82A);
  1686.  
  1687. extern pascal ComponentResult SGPanelItem(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, short itemNum)
  1688.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0205, 0x7000, 0xA82A);
  1689.  
  1690. extern pascal ComponentResult SGPanelRemove(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset)
  1691.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0206, 0x7000, 0xA82A);
  1692.  
  1693. extern pascal ComponentResult SGPanelSetGrabber(SeqGrabComponent s, SeqGrabComponent sg)
  1694.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0207, 0x7000, 0xA82A);
  1695.  
  1696. extern pascal ComponentResult SGPanelSetResFile(SeqGrabComponent s, short resRef)
  1697.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0208, 0x7000, 0xA82A);
  1698.  
  1699. extern pascal ComponentResult SGPanelGetSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags)
  1700.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0209, 0x7000, 0xA82A);
  1701.  
  1702. extern pascal ComponentResult SGPanelSetSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags)
  1703.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x020A, 0x7000, 0xA82A);
  1704.  
  1705. extern pascal ComponentResult SGPanelValidateInput(SeqGrabComponent s, Boolean *ok)
  1706.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x020B, 0x7000, 0xA82A);
  1707.  
  1708. extern pascal ComponentResult SGPanelSetEventFilter(SeqGrabComponent s, SGModalFilterUPP proc, long refCon)
  1709.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x020C, 0x7000, 0xA82A);
  1710.  
  1711. /*** Sequence Grab VIDEO CHANNEL Component Stuff ***/
  1712. /*
  1713.     Video stuff
  1714. */
  1715. struct SGCompressInfo {
  1716.     Ptr                             buffer;
  1717.     unsigned long                     bufferSize;
  1718.     UInt8                             similarity;
  1719.     UInt8                             reserved;
  1720. };
  1721. typedef struct SGCompressInfo SGCompressInfo;
  1722.  
  1723. typedef pascal ComponentResult (*SGGrabBottleProcPtr)(SGChannel c, short bufferNum, long refCon);
  1724. typedef pascal ComponentResult (*SGGrabCompleteBottleProcPtr)(SGChannel c, short bufferNum, Boolean *done, long refCon);
  1725. typedef pascal ComponentResult (*SGDisplayBottleProcPtr)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  1726. typedef pascal ComponentResult (*SGCompressBottleProcPtr)(SGChannel c, short bufferNum, long refCon);
  1727. typedef pascal ComponentResult (*SGCompressCompleteBottleProcPtr)(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci, long refCon);
  1728. typedef pascal ComponentResult (*SGAddFrameBottleProcPtr)(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci, long refCon);
  1729. typedef pascal ComponentResult (*SGTransferFrameBottleProcPtr)(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  1730. typedef pascal ComponentResult (*SGGrabCompressCompleteBottleProcPtr)(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *t, long refCon);
  1731. typedef pascal ComponentResult (*SGDisplayCompressBottleProcPtr)(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  1732.  
  1733. #if GENERATINGCFM
  1734. typedef UniversalProcPtr SGGrabBottleUPP;
  1735. typedef UniversalProcPtr SGGrabCompleteBottleUPP;
  1736. typedef UniversalProcPtr SGDisplayBottleUPP;
  1737. typedef UniversalProcPtr SGCompressBottleUPP;
  1738. typedef UniversalProcPtr SGCompressCompleteBottleUPP;
  1739. typedef UniversalProcPtr SGAddFrameBottleUPP;
  1740. typedef UniversalProcPtr SGTransferFrameBottleUPP;
  1741. typedef UniversalProcPtr SGGrabCompressCompleteBottleUPP;
  1742. typedef UniversalProcPtr SGDisplayCompressBottleUPP;
  1743. #else
  1744. typedef SGGrabBottleProcPtr SGGrabBottleUPP;
  1745. typedef SGGrabCompleteBottleProcPtr SGGrabCompleteBottleUPP;
  1746. typedef SGDisplayBottleProcPtr SGDisplayBottleUPP;
  1747. typedef SGCompressBottleProcPtr SGCompressBottleUPP;
  1748. typedef SGCompressCompleteBottleProcPtr SGCompressCompleteBottleUPP;
  1749. typedef SGAddFrameBottleProcPtr SGAddFrameBottleUPP;
  1750. typedef SGTransferFrameBottleProcPtr SGTransferFrameBottleUPP;
  1751. typedef SGGrabCompressCompleteBottleProcPtr SGGrabCompressCompleteBottleUPP;
  1752. typedef SGDisplayCompressBottleProcPtr SGDisplayCompressBottleUPP;
  1753. #endif
  1754. struct VideoBottles {
  1755.     short                             procCount;
  1756.     SGGrabBottleUPP                 grabProc;
  1757.     SGGrabCompleteBottleUPP         grabCompleteProc;
  1758.     SGDisplayBottleUPP                 displayProc;
  1759.     SGCompressBottleUPP             compressProc;
  1760.     SGCompressCompleteBottleUPP     compressCompleteProc;
  1761.     SGAddFrameBottleUPP             addFrameProc;
  1762.     SGTransferFrameBottleUPP         transferFrameProc;
  1763.     SGGrabCompressCompleteBottleUPP  grabCompressCompleteProc;
  1764.     SGDisplayCompressBottleUPP         displayCompressProc;
  1765. };
  1766. typedef struct VideoBottles VideoBottles;
  1767.  
  1768. extern pascal ComponentResult SGGetSrcVideoBounds(SGChannel c, Rect *r)
  1769.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1770.  
  1771. extern pascal ComponentResult SGSetVideoRect(SGChannel c, const Rect *r)
  1772.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1773.  
  1774. extern pascal ComponentResult SGGetVideoRect(SGChannel c, Rect *r)
  1775.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  1776.  
  1777. extern pascal ComponentResult SGGetVideoCompressorType(SGChannel c, OSType *compressorType)
  1778.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1779.  
  1780. extern pascal ComponentResult SGSetVideoCompressorType(SGChannel c, OSType compressorType)
  1781.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  1782.  
  1783. extern pascal ComponentResult SGSetVideoCompressor(SGChannel c, short depth, CompressorComponent compressor, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate)
  1784.  FIVEWORDINLINE(0x2F3C, 0x0012, 0x0105, 0x7000, 0xA82A);
  1785.  
  1786. extern pascal ComponentResult SGGetVideoCompressor(SGChannel c, short *depth, CompressorComponent *compressor, CodecQ *spatialQuality, CodecQ *temporalQuality, long *keyFrameRate)
  1787.  FIVEWORDINLINE(0x2F3C, 0x0014, 0x0106, 0x7000, 0xA82A);
  1788.  
  1789. extern pascal ComponentInstance SGGetVideoDigitizerComponent(SGChannel c)
  1790.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0107, 0x7000, 0xA82A);
  1791.  
  1792. extern pascal ComponentResult SGSetVideoDigitizerComponent(SGChannel c, ComponentInstance vdig)
  1793.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
  1794.  
  1795. extern pascal ComponentResult SGVideoDigitizerChanged(SGChannel c)
  1796.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0109, 0x7000, 0xA82A);
  1797.  
  1798. extern pascal ComponentResult SGSetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  1799.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  1800.  
  1801. extern pascal ComponentResult SGGetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  1802.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  1803.  
  1804. extern pascal ComponentResult SGGrabFrame(SGChannel c, short bufferNum)
  1805.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x010C, 0x7000, 0xA82A);
  1806.  
  1807. extern pascal ComponentResult SGGrabFrameComplete(SGChannel c, short bufferNum, Boolean *done)
  1808.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x010D, 0x7000, 0xA82A);
  1809.  
  1810. extern pascal ComponentResult SGDisplayFrame(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn)
  1811.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x010E, 0x7000, 0xA82A);
  1812.  
  1813. extern pascal ComponentResult SGCompressFrame(SGChannel c, short bufferNum)
  1814.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x010F, 0x7000, 0xA82A);
  1815.  
  1816. extern pascal ComponentResult SGCompressFrameComplete(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci)
  1817.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0110, 0x7000, 0xA82A);
  1818.  
  1819. extern pascal ComponentResult SGAddFrame(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci)
  1820.  FIVEWORDINLINE(0x2F3C, 0x000E, 0x0111, 0x7000, 0xA82A);
  1821.  
  1822. extern pascal ComponentResult SGTransferFrameForCompress(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn)
  1823.  FIVEWORDINLINE(0x2F3C, 0x000A, 0x0112, 0x7000, 0xA82A);
  1824.  
  1825. extern pascal ComponentResult SGSetCompressBuffer(SGChannel c, short depth, const Rect *compressSize)
  1826.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0113, 0x7000, 0xA82A);
  1827.  
  1828. extern pascal ComponentResult SGGetCompressBuffer(SGChannel c, short *depth, Rect *compressSize)
  1829.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0114, 0x7000, 0xA82A);
  1830.  
  1831. extern pascal ComponentResult SGGetBufferInfo(SGChannel c, short bufferNum, PixMapHandle *bufferPM, Rect *bufferRect, GWorldPtr *compressBuffer, Rect *compressBufferRect)
  1832.  FIVEWORDINLINE(0x2F3C, 0x0012, 0x0115, 0x7000, 0xA82A);
  1833.  
  1834. extern pascal ComponentResult SGSetUseScreenBuffer(SGChannel c, Boolean useScreenBuffer)
  1835.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0116, 0x7000, 0xA82A);
  1836.  
  1837. extern pascal ComponentResult SGGetUseScreenBuffer(SGChannel c, Boolean *useScreenBuffer)
  1838.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0117, 0x7000, 0xA82A);
  1839.  
  1840. extern pascal ComponentResult SGGrabCompressComplete(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *tr)
  1841.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0118, 0x7000, 0xA82A);
  1842.  
  1843. extern pascal ComponentResult SGDisplayCompress(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn)
  1844.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0119, 0x7000, 0xA82A);
  1845.  
  1846. extern pascal ComponentResult SGSetFrameRate(SGChannel c, Fixed frameRate)
  1847.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x011A, 0x7000, 0xA82A);
  1848.  
  1849. extern pascal ComponentResult SGGetFrameRate(SGChannel c, Fixed *frameRate)
  1850.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x011B, 0x7000, 0xA82A);
  1851.  
  1852. /*** Sequence Grab SOUND CHANNEL Component Stuff ***/
  1853. /*
  1854.     Sound stuff
  1855. */
  1856. extern pascal ComponentResult SGSetSoundInputDriver(SGChannel c, ConstStr255Param driverName)
  1857.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1858.  
  1859. extern pascal long SGGetSoundInputDriver(SGChannel c)
  1860.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0101, 0x7000, 0xA82A);
  1861.  
  1862. extern pascal ComponentResult SGSoundInputDriverChanged(SGChannel c)
  1863.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0102, 0x7000, 0xA82A);
  1864.  
  1865. extern pascal ComponentResult SGSetSoundRecordChunkSize(SGChannel c, long seconds)
  1866.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1867.  
  1868. extern pascal long SGGetSoundRecordChunkSize(SGChannel c)
  1869.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0104, 0x7000, 0xA82A);
  1870.  
  1871. extern pascal ComponentResult SGSetSoundInputRate(SGChannel c, Fixed rate)
  1872.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  1873.  
  1874. extern pascal Fixed SGGetSoundInputRate(SGChannel c)
  1875.  FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A);
  1876.  
  1877. extern pascal ComponentResult SGSetSoundInputParameters(SGChannel c, short sampleSize, short numChannels, OSType compressionType)
  1878.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  1879.  
  1880. extern pascal ComponentResult SGGetSoundInputParameters(SGChannel c, short *sampleSize, short *numChannels, OSType *compressionType)
  1881.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0108, 0x7000, 0xA82A);
  1882.  
  1883. /*
  1884.     Text stuff
  1885. */
  1886. extern pascal ComponentResult SGSetFontName(SGChannel c, StringPtr pstr)
  1887.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1888.  
  1889. extern pascal ComponentResult SGSetFontSize(SGChannel c, short fontSize)
  1890.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0101, 0x7000, 0xA82A);
  1891.  
  1892. extern pascal ComponentResult SGSetTextColor(SGChannel c, RGBColor *theColor)
  1893.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  1894.  
  1895. extern pascal ComponentResult SGSetTextBackColor(SGChannel c, RGBColor *theColor)
  1896.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1897.  
  1898. extern pascal ComponentResult SGSetJustification(SGChannel c, short just)
  1899.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0104, 0x7000, 0xA82A);
  1900.  
  1901. extern pascal ComponentResult SGGetTextRetToSpaceValue(SGChannel c, short *rettospace)
  1902.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  1903.  
  1904. extern pascal ComponentResult SGSetTextRetToSpaceValue(SGChannel c, short rettospace)
  1905.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0106, 0x7000, 0xA82A);
  1906.  
  1907. /*
  1908.     Music stuff
  1909. */
  1910. extern pascal ComponentResult SGGetInstrument(SGChannel c, ToneDescription *td)
  1911.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1912.  
  1913. extern pascal ComponentResult SGSetInstrument(SGChannel c, ToneDescription *td)
  1914.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1915.  
  1916.  
  1917. enum {
  1918.     sgChannelAtom                = 'chan',
  1919.     sgChannelSettingsAtom        = 'ctom',
  1920.     sgChannelDescription        = 'cdsc',
  1921.     sgChannelSettings            = 'cset'
  1922. };
  1923.  
  1924.  
  1925. enum {
  1926.     sgDeviceNameType            = 'name',
  1927.     sgUsageType                    = 'use ',
  1928.     sgPlayFlagsType                = 'plyf',
  1929.     sgClipType                    = 'clip',
  1930.     sgMatrixType                = 'mtrx',
  1931.     sgVolumeType                = 'volu'
  1932. };
  1933.  
  1934.  
  1935. enum {
  1936.     sgPanelSettingsAtom            = 'ptom',
  1937.     sgPanelDescription            = 'pdsc',
  1938.     sgPanelSettings                = 'pset'
  1939. };
  1940.  
  1941.  
  1942. enum {
  1943.     sgcSoundCompressionType        = 'scmp',
  1944.     sgcSoundSampleRateType        = 'srat',
  1945.     sgcSoundChannelCountType    = 'schn',
  1946.     sgcSoundSampleSizeType        = 'ssiz',
  1947.     sgcSoundInputType            = 'sinp',
  1948.     sgcSoundGainType            = 'gain'
  1949. };
  1950.  
  1951.  
  1952. enum {
  1953.     sgcVideoHueType                = 'hue ',
  1954.     sgcVideoSaturationType        = 'satr',
  1955.     sgcVideoContrastType        = 'trst',
  1956.     sgcVideoSharpnessType        = 'shrp',
  1957.     sgcVideoBrigtnessType        = 'brit',
  1958.     sgcVideoBlackLevelType        = 'blkl',
  1959.     sgcVideoWhiteLevelType        = 'whtl',
  1960.     sgcVideoInputType            = 'vinp',
  1961.     sgcVideoFormatType            = 'vstd',
  1962.     sgcVideoFilterType            = 'vflt',
  1963.     sgcVideoRectType            = 'vrct',
  1964.     sgcVideoDigitizerType        = 'vdig'
  1965. };
  1966.  
  1967. /* UPP call backs */
  1968.  
  1969. #if GENERATINGCFM
  1970. #else
  1971. #endif
  1972.  
  1973. enum {
  1974.     uppSCModalFilterProcInfo = kPascalStackBased
  1975.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  1976.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DialogPtr)))
  1977.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(EventRecord *)))
  1978.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short *)))
  1979.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))),
  1980.     uppSCModalHookProcInfo = kPascalStackBased
  1981.          | RESULT_SIZE(SIZE_CODE(sizeof(short)))
  1982.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DialogPtr)))
  1983.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  1984.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void *)))
  1985.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))),
  1986.     uppTweenerDataProcInfo = kPascalStackBased
  1987.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  1988.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(TweenRecord *)))
  1989.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void *)))
  1990.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  1991.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  1992.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(Handle)))
  1993.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(ICMCompletionProcRecordPtr)))
  1994.          | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(ProcPtr)))
  1995.          | STACK_ROUTINE_PARAMETER(8, SIZE_CODE(sizeof(void *))),
  1996.     uppDataHCompletionProcInfo = kPascalStackBased
  1997.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
  1998.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  1999.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(OSErr))),
  2000.     uppVdigIntProcInfo = kPascalStackBased
  2001.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  2002.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))),
  2003.     uppSGDataProcInfo = kPascalStackBased
  2004.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  2005.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2006.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Ptr)))
  2007.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  2008.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long *)))
  2009.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long)))
  2010.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(TimeValue)))
  2011.          | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(short)))
  2012.          | STACK_ROUTINE_PARAMETER(8, SIZE_CODE(sizeof(long))),
  2013.     uppSGModalFilterProcInfo = kPascalStackBased
  2014.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  2015.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(DialogPtr)))
  2016.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(EventRecord *)))
  2017.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short *)))
  2018.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))),
  2019.     uppSGGrabBottleProcInfo = kPascalStackBased
  2020.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2021.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2022.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2023.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))),
  2024.     uppSGGrabCompleteBottleProcInfo = kPascalStackBased
  2025.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2026.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2027.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2028.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Boolean *)))
  2029.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))),
  2030.     uppSGDisplayBottleProcInfo = kPascalStackBased
  2031.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2032.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2033.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2034.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(MatrixRecord *)))
  2035.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(RgnHandle)))
  2036.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))),
  2037.     uppSGCompressBottleProcInfo = kPascalStackBased
  2038.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2039.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2040.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2041.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))),
  2042.     uppSGCompressCompleteBottleProcInfo = kPascalStackBased
  2043.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2044.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2045.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2046.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Boolean *)))
  2047.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(SGCompressInfo *)))
  2048.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))),
  2049.     uppSGAddFrameBottleProcInfo = kPascalStackBased
  2050.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2051.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2052.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2053.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(TimeValue)))
  2054.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(TimeScale)))
  2055.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(const SGCompressInfo *)))
  2056.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(long))),
  2057.     uppSGTransferFrameBottleProcInfo = kPascalStackBased
  2058.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2059.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2060.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  2061.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(MatrixRecord *)))
  2062.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(RgnHandle)))
  2063.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))),
  2064.     uppSGGrabCompressCompleteBottleProcInfo = kPascalStackBased
  2065.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2066.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2067.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Boolean *)))
  2068.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(SGCompressInfo *)))
  2069.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(TimeRecord *)))
  2070.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))),
  2071.     uppSGDisplayCompressBottleProcInfo = kPascalStackBased
  2072.          | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  2073.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(SGChannel)))
  2074.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Ptr)))
  2075.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(ImageDescriptionHandle)))
  2076.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(MatrixRecord *)))
  2077.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(RgnHandle)))
  2078.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(long)))
  2079. };
  2080.  
  2081. #if GENERATINGCFM
  2082. #define NewSCModalFilterProc(userRoutine)        \
  2083.         (SCModalFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalFilterProcInfo, GetCurrentArchitecture())
  2084. #define NewSCModalHookProc(userRoutine)        \
  2085.         (SCModalHookUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalHookProcInfo, GetCurrentArchitecture())
  2086. #define NewTweenerDataProc(userRoutine)        \
  2087.         (TweenerDataUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTweenerDataProcInfo, GetCurrentArchitecture())
  2088. #define NewDataHCompletionProc(userRoutine)        \
  2089.         (DataHCompletionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDataHCompletionProcInfo, GetCurrentArchitecture())
  2090. #define NewVdigIntProc(userRoutine)        \
  2091.         (VdigIntUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppVdigIntProcInfo, GetCurrentArchitecture())
  2092. #define NewSGDataProc(userRoutine)        \
  2093.         (SGDataUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDataProcInfo, GetCurrentArchitecture())
  2094. #define NewSGModalFilterProc(userRoutine)        \
  2095.         (SGModalFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGModalFilterProcInfo, GetCurrentArchitecture())
  2096. #define NewSGGrabBottleProc(userRoutine)        \
  2097.         (SGGrabBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabBottleProcInfo, GetCurrentArchitecture())
  2098. #define NewSGGrabCompleteBottleProc(userRoutine)        \
  2099.         (SGGrabCompleteBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompleteBottleProcInfo, GetCurrentArchitecture())
  2100. #define NewSGDisplayBottleProc(userRoutine)        \
  2101.         (SGDisplayBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayBottleProcInfo, GetCurrentArchitecture())
  2102. #define NewSGCompressBottleProc(userRoutine)        \
  2103.         (SGCompressBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressBottleProcInfo, GetCurrentArchitecture())
  2104. #define NewSGCompressCompleteBottleProc(userRoutine)        \
  2105.         (SGCompressCompleteBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressCompleteBottleProcInfo, GetCurrentArchitecture())
  2106. #define NewSGAddFrameBottleProc(userRoutine)        \
  2107.         (SGAddFrameBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGAddFrameBottleProcInfo, GetCurrentArchitecture())
  2108. #define NewSGTransferFrameBottleProc(userRoutine)        \
  2109.         (SGTransferFrameBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGTransferFrameBottleProcInfo, GetCurrentArchitecture())
  2110. #define NewSGGrabCompressCompleteBottleProc(userRoutine)        \
  2111.         (SGGrabCompressCompleteBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompressCompleteBottleProcInfo, GetCurrentArchitecture())
  2112. #define NewSGDisplayCompressBottleProc(userRoutine)        \
  2113.         (SGDisplayCompressBottleUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayCompressBottleProcInfo, GetCurrentArchitecture())
  2114. #else
  2115. #define NewSCModalFilterProc(userRoutine)        \
  2116.         ((SCModalFilterUPP) (userRoutine))
  2117. #define NewSCModalHookProc(userRoutine)        \
  2118.         ((SCModalHookUPP) (userRoutine))
  2119. #define NewTweenerDataProc(userRoutine)        \
  2120.         ((TweenerDataUPP) (userRoutine))
  2121. #define NewDataHCompletionProc(userRoutine)        \
  2122.         ((DataHCompletionUPP) (userRoutine))
  2123. #define NewVdigIntProc(userRoutine)        \
  2124.         ((VdigIntUPP) (userRoutine))
  2125. #define NewSGDataProc(userRoutine)        \
  2126.         ((SGDataUPP) (userRoutine))
  2127. #define NewSGModalFilterProc(userRoutine)        \
  2128.         ((SGModalFilterUPP) (userRoutine))
  2129. #define NewSGGrabBottleProc(userRoutine)        \
  2130.         ((SGGrabBottleUPP) (userRoutine))
  2131. #define NewSGGrabCompleteBottleProc(userRoutine)        \
  2132.         ((SGGrabCompleteBottleUPP) (userRoutine))
  2133. #define NewSGDisplayBottleProc(userRoutine)        \
  2134.         ((SGDisplayBottleUPP) (userRoutine))
  2135. #define NewSGCompressBottleProc(userRoutine)        \
  2136.         ((SGCompressBottleUPP) (userRoutine))
  2137. #define NewSGCompressCompleteBottleProc(userRoutine)        \
  2138.         ((SGCompressCompleteBottleUPP) (userRoutine))
  2139. #define NewSGAddFrameBottleProc(userRoutine)        \
  2140.         ((SGAddFrameBottleUPP) (userRoutine))
  2141. #define NewSGTransferFrameBottleProc(userRoutine)        \
  2142.         ((SGTransferFrameBottleUPP) (userRoutine))
  2143. #define NewSGGrabCompressCompleteBottleProc(userRoutine)        \
  2144.         ((SGGrabCompressCompleteBottleUPP) (userRoutine))
  2145. #define NewSGDisplayCompressBottleProc(userRoutine)        \
  2146.         ((SGDisplayCompressBottleUPP) (userRoutine))
  2147. #endif
  2148.  
  2149. #if GENERATINGCFM
  2150. #define CallSCModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refcon)        \
  2151.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSCModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refcon))
  2152. #define CallSCModalHookProc(userRoutine, theDialog, itemHit, params, refcon)        \
  2153.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSCModalHookProcInfo, (theDialog), (itemHit), (params), (refcon))
  2154. #define CallTweenerDataProc(userRoutine, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon)        \
  2155.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTweenerDataProcInfo, (tr), (tweenData), (tweenDataSize), (dataDescriptionSeed), (dataDescription), (asyncCompletionProc), (transferProc), (refCon))
  2156. #define CallDataHCompletionProc(userRoutine, request, refcon, err)        \
  2157.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDataHCompletionProcInfo, (request), (refcon), (err))
  2158. #define CallVdigIntProc(userRoutine, flags, refcon)        \
  2159.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppVdigIntProcInfo, (flags), (refcon))
  2160. #define CallSGDataProc(userRoutine, c, p, len, offset, chRefCon, time, writeType, refCon)        \
  2161.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGDataProcInfo, (c), (p), (len), (offset), (chRefCon), (time), (writeType), (refCon))
  2162. #define CallSGModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refCon)        \
  2163.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refCon))
  2164. #define CallSGGrabBottleProc(userRoutine, c, bufferNum, refCon)        \
  2165.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGGrabBottleProcInfo, (c), (bufferNum), (refCon))
  2166. #define CallSGGrabCompleteBottleProc(userRoutine, c, bufferNum, done, refCon)        \
  2167.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGGrabCompleteBottleProcInfo, (c), (bufferNum), (done), (refCon))
  2168. #define CallSGDisplayBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)        \
  2169.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGDisplayBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon))
  2170. #define CallSGCompressBottleProc(userRoutine, c, bufferNum, refCon)        \
  2171.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGCompressBottleProcInfo, (c), (bufferNum), (refCon))
  2172. #define CallSGCompressCompleteBottleProc(userRoutine, c, bufferNum, done, ci, refCon)        \
  2173.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGCompressCompleteBottleProcInfo, (c), (bufferNum), (done), (ci), (refCon))
  2174. #define CallSGAddFrameBottleProc(userRoutine, c, bufferNum, atTime, scale, ci, refCon)        \
  2175.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGAddFrameBottleProcInfo, (c), (bufferNum), (atTime), (scale), (ci), (refCon))
  2176. #define CallSGTransferFrameBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)        \
  2177.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGTransferFrameBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon))
  2178. #define CallSGGrabCompressCompleteBottleProc(userRoutine, c, done, ci, t, refCon)        \
  2179.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGGrabCompressCompleteBottleProcInfo, (c), (done), (ci), (t), (refCon))
  2180. #define CallSGDisplayCompressBottleProc(userRoutine, c, dataPtr, desc, mp, clipRgn, refCon)        \
  2181.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSGDisplayCompressBottleProcInfo, (c), (dataPtr), (desc), (mp), (clipRgn), (refCon))
  2182. #else
  2183. #define CallSCModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refcon)        \
  2184.         (*(userRoutine))((theDialog), (theEvent), (itemHit), (refcon))
  2185. #define CallSCModalHookProc(userRoutine, theDialog, itemHit, params, refcon)        \
  2186.         (*(userRoutine))((theDialog), (itemHit), (params), (refcon))
  2187. #define CallTweenerDataProc(userRoutine, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon)        \
  2188.         (*(userRoutine))((tr), (tweenData), (tweenDataSize), (dataDescriptionSeed), (dataDescription), (asyncCompletionProc), (transferProc), (refCon))
  2189. #define CallDataHCompletionProc(userRoutine, request, refcon, err)        \
  2190.         (*(userRoutine))((request), (refcon), (err))
  2191. #define CallVdigIntProc(userRoutine, flags, refcon)        \
  2192.         (*(userRoutine))((flags), (refcon))
  2193. #define CallSGDataProc(userRoutine, c, p, len, offset, chRefCon, time, writeType, refCon)        \
  2194.         (*(userRoutine))((c), (p), (len), (offset), (chRefCon), (time), (writeType), (refCon))
  2195. #define CallSGModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refCon)        \
  2196.         (*(userRoutine))((theDialog), (theEvent), (itemHit), (refCon))
  2197. #define CallSGGrabBottleProc(userRoutine, c, bufferNum, refCon)        \
  2198.         (*(userRoutine))((c), (bufferNum), (refCon))
  2199. #define CallSGGrabCompleteBottleProc(userRoutine, c, bufferNum, done, refCon)        \
  2200.         (*(userRoutine))((c), (bufferNum), (done), (refCon))
  2201. #define CallSGDisplayBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)        \
  2202.         (*(userRoutine))((c), (bufferNum), (mp), (clipRgn), (refCon))
  2203. #define CallSGCompressBottleProc(userRoutine, c, bufferNum, refCon)        \
  2204.         (*(userRoutine))((c), (bufferNum), (refCon))
  2205. #define CallSGCompressCompleteBottleProc(userRoutine, c, bufferNum, done, ci, refCon)        \
  2206.         (*(userRoutine))((c), (bufferNum), (done), (ci), (refCon))
  2207. #define CallSGAddFrameBottleProc(userRoutine, c, bufferNum, atTime, scale, ci, refCon)        \
  2208.         (*(userRoutine))((c), (bufferNum), (atTime), (scale), (ci), (refCon))
  2209. #define CallSGTransferFrameBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)        \
  2210.         (*(userRoutine))((c), (bufferNum), (mp), (clipRgn), (refCon))
  2211. #define CallSGGrabCompressCompleteBottleProc(userRoutine, c, done, ci, t, refCon)        \
  2212.         (*(userRoutine))((c), (done), (ci), (t), (refCon))
  2213. #define CallSGDisplayCompressBottleProc(userRoutine, c, dataPtr, desc, mp, clipRgn, refCon)        \
  2214.         (*(userRoutine))((c), (dataPtr), (desc), (mp), (clipRgn), (refCon))
  2215. #endif
  2216.  
  2217. /* selectors for component calls */
  2218. enum {
  2219.     kClockGetTimeSelect                                = 0x0001,
  2220.     kClockNewCallBackSelect                            = 0x0002,
  2221.     kClockDisposeCallBackSelect                        = 0x0003,
  2222.     kClockCallMeWhenSelect                            = 0x0004,
  2223.     kClockCancelCallBackSelect                        = 0x0005,
  2224.     kClockRateChangedSelect                            = 0x0006,
  2225.     kClockTimeChangedSelect                            = 0x0007,
  2226.     kClockSetTimeBaseSelect                            = 0x0008,
  2227.     kClockStartStopChangedSelect                    = 0x0009,
  2228.     kClockGetRateSelect                                = 0x000A,
  2229.     kSCGetCompressionExtendedSelect                    = 0x0001,
  2230.     kSCPositionRectSelect                            = 0x0002,
  2231.     kSCPositionDialogSelect                            = 0x0003,
  2232.     kSCSetTestImagePictHandleSelect                    = 0x0004,
  2233.     kSCSetTestImagePictFileSelect                    = 0x0005,
  2234.     kSCSetTestImagePixMapSelect                        = 0x0006,
  2235.     kSCGetBestDeviceRectSelect                        = 0x0007,
  2236.     kSCRequestImageSettingsSelect                    = 0x000A,
  2237.     kSCCompressImageSelect                            = 0x000B,
  2238.     kSCCompressPictureSelect                        = 0x000C,
  2239.     kSCCompressPictureFileSelect                    = 0x000D,
  2240.     kSCRequestSequenceSettingsSelect                = 0x000E,
  2241.     kSCCompressSequenceBeginSelect                    = 0x000F,
  2242.     kSCCompressSequenceFrameSelect                    = 0x0010,
  2243.     kSCCompressSequenceEndSelect                    = 0x0011,
  2244.     kSCDefaultPictHandleSettingsSelect                = 0x0012,
  2245.     kSCDefaultPictFileSettingsSelect                = 0x0013,
  2246.     kSCDefaultPixMapSettingsSelect                    = 0x0014,
  2247.     kSCGetInfoSelect                                = 0x0015,
  2248.     kSCSetInfoSelect                                = 0x0016,
  2249.     kSCNewGWorldSelect                                = 0x0017,
  2250.     kSCSetCompressFlagsSelect                        = 0x0018,
  2251.     kSCGetCompressFlagsSelect                        = 0x0019,
  2252.     kTweenerInitializeSelect                        = 0x0001,
  2253.     kTweenerDoTweenSelect                            = 0x0002,
  2254.     kTweenerResetSelect                                = 0x0003,
  2255.     kTCGetCurrentTimeCodeSelect                        = 0x0101,
  2256.     kTCGetTimeCodeAtTimeSelect                        = 0x0102,
  2257.     kTCTimeCodeToStringSelect                        = 0x0103,
  2258.     kTCTimeCodeToFrameNumberSelect                    = 0x0104,
  2259.     kTCFrameNumberToTimeCodeSelect                    = 0x0105,
  2260.     kTCGetSourceRefSelect                            = 0x0106,
  2261.     kTCSetSourceRefSelect                            = 0x0107,
  2262.     kTCSetTimeCodeFlagsSelect                        = 0x0108,
  2263.     kTCGetTimeCodeFlagsSelect                        = 0x0109,
  2264.     kTCSetDisplayOptionsSelect                        = 0x010A,
  2265.     kTCGetDisplayOptionsSelect                        = 0x010B,
  2266.     kMovieImportHandleSelect                        = 0x0001,
  2267.     kMovieImportFileSelect                            = 0x0002,
  2268.     kMovieImportSetSampleDurationSelect                = 0x0003,
  2269.     kMovieImportSetSampleDescriptionSelect            = 0x0004,
  2270.     kMovieImportSetMediaFileSelect                    = 0x0005,
  2271.     kMovieImportSetDimensionsSelect                    = 0x0006,
  2272.     kMovieImportSetChunkSizeSelect                    = 0x0007,
  2273.     kMovieImportSetProgressProcSelect                = 0x0008,
  2274.     kMovieImportSetAuxiliaryDataSelect                = 0x0009,
  2275.     kMovieImportSetFromScrapSelect                    = 0x000A,
  2276.     kMovieImportDoUserDialogSelect                    = 0x000B,
  2277.     kMovieImportSetDurationSelect                    = 0x000C,
  2278.     kMovieImportGetAuxiliaryDataTypeSelect            = 0x000D,
  2279.     kMovieImportValidateSelect                        = 0x000E,
  2280.     kMovieImportGetFileTypeSelect                    = 0x000F,
  2281.     kMovieImportDataRefSelect                        = 0x0010,
  2282.     kMovieExportToHandleSelect                        = 0x0080,
  2283.     kMovieExportToFileSelect                        = 0x0081,
  2284.     kMovieExportGetAuxiliaryDataSelect                = 0x0083,
  2285.     kMovieExportSetProgressProcSelect                = 0x0084,
  2286.     kMovieExportSetSampleDescriptionSelect            = 0x0085,
  2287.     kMovieExportDoUserDialogSelect                    = 0x0086,
  2288.     kMovieExportGetCreatorTypeSelect                = 0x0087,
  2289.     kTextExportGetDisplayDataSelect                    = 0x0100,
  2290.     kTextExportGetTimeFractionSelect                = 0x0101,
  2291.     kTextExportSetTimeFractionSelect                = 0x0102,
  2292.     kTextExportGetSettingsSelect                    = 0x0103,
  2293.     kTextExportSetSettingsSelect                    = 0x0104,
  2294.     kPreviewShowDataSelect                            = 0x0001,
  2295.     kPreviewMakePreviewSelect                        = 0x0002,
  2296.     kPreviewMakePreviewReferenceSelect                = 0x0003,
  2297.     kPreviewEventSelect                                = 0x0004,
  2298.     kDataHGetDataSelect                                = 0x0002,
  2299.     kDataHPutDataSelect                                = 0x0003,
  2300.     kDataHFlushDataSelect                            = 0x0004,
  2301.     kDataHOpenForWriteSelect                        = 0x0005,
  2302.     kDataHCloseForWriteSelect                        = 0x0006,
  2303.     kDataHOpenForReadSelect                            = 0x0008,
  2304.     kDataHCloseForReadSelect                        = 0x0009,
  2305.     kDataHSetDataRefSelect                            = 0x000A,
  2306.     kDataHGetDataRefSelect                            = 0x000B,
  2307.     kDataHCompareDataRefSelect                        = 0x000C,
  2308.     kDataHTaskSelect                                = 0x000D,
  2309.     kDataHScheduleDataSelect                        = 0x000E,
  2310.     kDataHFinishDataSelect                            = 0x000F,
  2311.     kDataHFlushCacheSelect                            = 0x0010,
  2312.     kDataHResolveDataRefSelect                        = 0x0011,
  2313.     kDataHGetFileSizeSelect                            = 0x0012,
  2314.     kDataHCanUseDataRefSelect                        = 0x0013,
  2315.     kDataHGetVolumeListSelect                        = 0x0014,
  2316.     kDataHWriteSelect                                = 0x0015,
  2317.     kDataHPreextendSelect                            = 0x0016,
  2318.     kDataHSetFileSizeSelect                            = 0x0017,
  2319.     kDataHGetFreeSpaceSelect                        = 0x0018,
  2320.     kDataHCreateFileSelect                            = 0x0019,
  2321.     kDataHGetPreferredBlockSizeSelect                = 0x001A,
  2322.     kDataHGetDeviceIndexSelect                        = 0x001B,
  2323.     kDataHIsStreamingDataHandlerSelect                = 0x001C,
  2324.     kDataHGetDataInBufferSelect                        = 0x001D,
  2325.     kDataHGetScheduleAheadTimeSelect                = 0x001E,
  2326.     kDataHSetCacheSizeLimitSelect                    = 0x001F,
  2327.     kDataHGetCacheSizeLimitSelect                    = 0x0020,
  2328.     kDataHGetMovieSelect                            = 0x0021,
  2329.     kDataHAddMovieSelect                            = 0x0022,
  2330.     kDataHUpdateMovieSelect                            = 0x0023,
  2331.     kDataHDoesBufferSelect                            = 0x0024,
  2332.     kDataHGetFileNameSelect                            = 0x0025,
  2333.     kDataHPlaybackHintsSelect                        = 0x0103,
  2334.     kVDGetMaxSrcRectSelect                            = 0x0001,
  2335.     kVDGetActiveSrcRectSelect                        = 0x0002,
  2336.     kVDSetDigitizerRectSelect                        = 0x0003,
  2337.     kVDGetDigitizerRectSelect                        = 0x0004,
  2338.     kVDGetVBlankRectSelect                            = 0x0005,
  2339.     kVDGetMaskPixMapSelect                            = 0x0006,
  2340.     kVDGetPlayThruDestinationSelect                    = 0x0008,
  2341.     kVDUseThisCLUTSelect                            = 0x0009,
  2342.     kVDSetInputGammaValueSelect                        = 0x000A,
  2343.     kVDGetInputGammaValueSelect                        = 0x000B,
  2344.     kVDSetBrightnessSelect                            = 0x000C,
  2345.     kVDGetBrightnessSelect                            = 0x000D,
  2346.     kVDSetContrastSelect                            = 0x000E,
  2347.     kVDSetHueSelect                                    = 0x000F,
  2348.     kVDSetSharpnessSelect                            = 0x0010,
  2349.     kVDSetSaturationSelect                            = 0x0011,
  2350.     kVDGetContrastSelect                            = 0x0012,
  2351.     kVDGetHueSelect                                    = 0x0013,
  2352.     kVDGetSharpnessSelect                            = 0x0014,
  2353.     kVDGetSaturationSelect                            = 0x0015,
  2354.     kVDGrabOneFrameSelect                            = 0x0016,
  2355.     kVDGetMaxAuxBufferSelect                        = 0x0017,
  2356.     kVDGetDigitizerInfoSelect                        = 0x0019,
  2357.     kVDGetCurrentFlagsSelect                        = 0x001A,
  2358.     kVDSetKeyColorSelect                            = 0x001B,
  2359.     kVDGetKeyColorSelect                            = 0x001C,
  2360.     kVDAddKeyColorSelect                            = 0x001D,
  2361.     kVDGetNextKeyColorSelect                        = 0x001E,
  2362.     kVDSetKeyColorRangeSelect                        = 0x001F,
  2363.     kVDGetKeyColorRangeSelect                        = 0x0020,
  2364.     kVDSetDigitizerUserInterruptSelect                = 0x0021,
  2365.     kVDSetInputColorSpaceModeSelect                    = 0x0022,
  2366.     kVDGetInputColorSpaceModeSelect                    = 0x0023,
  2367.     kVDSetClipStateSelect                            = 0x0024,
  2368.     kVDGetClipStateSelect                            = 0x0025,
  2369.     kVDSetClipRgnSelect                                = 0x0026,
  2370.     kVDClearClipRgnSelect                            = 0x0027,
  2371.     kVDGetCLUTInUseSelect                            = 0x0028,
  2372.     kVDSetPLLFilterTypeSelect                        = 0x0029,
  2373.     kVDGetPLLFilterTypeSelect                        = 0x002A,
  2374.     kVDGetMaskandValueSelect                        = 0x002B,
  2375.     kVDSetMasterBlendLevelSelect                    = 0x002C,
  2376.     kVDSetPlayThruDestinationSelect                    = 0x002D,
  2377.     kVDSetPlayThruOnOffSelect                        = 0x002E,
  2378.     kVDSetFieldPreferenceSelect                        = 0x002F,
  2379.     kVDGetFieldPreferenceSelect                        = 0x0030,
  2380.     kVDPreflightDestinationSelect                    = 0x0032,
  2381.     kVDPreflightGlobalRectSelect                    = 0x0033,
  2382.     kVDSetPlayThruGlobalRectSelect                    = 0x0034,
  2383.     kVDSetInputGammaRecordSelect                    = 0x0035,
  2384.     kVDGetInputGammaRecordSelect                    = 0x0036,
  2385.     kVDSetBlackLevelValueSelect                        = 0x0037,
  2386.     kVDGetBlackLevelValueSelect                        = 0x0038,
  2387.     kVDSetWhiteLevelValueSelect                        = 0x0039,
  2388.     kVDGetWhiteLevelValueSelect                        = 0x003A,
  2389.     kVDGetVideoDefaultsSelect                        = 0x003B,
  2390.     kVDGetNumberOfInputsSelect                        = 0x003C,
  2391.     kVDGetInputFormatSelect                            = 0x003D,
  2392.     kVDSetInputSelect                                = 0x003E,
  2393.     kVDGetInputSelect                                = 0x003F,
  2394.     kVDSetInputStandardSelect                        = 0x0040,
  2395.     kVDSetupBuffersSelect                            = 0x0041,
  2396.     kVDGrabOneFrameAsyncSelect                        = 0x0042,
  2397.     kVDDoneSelect                                    = 0x0043,
  2398.     kVDSetCompressionSelect                            = 0x0044,
  2399.     kVDCompressOneFrameAsyncSelect                    = 0x0045,
  2400.     kVDCompressDoneSelect                            = 0x0046,
  2401.     kVDReleaseCompressBufferSelect                    = 0x0047,
  2402.     kVDGetImageDescriptionSelect                    = 0x0048,
  2403.     kVDResetCompressSequenceSelect                    = 0x0049,
  2404.     kVDSetCompressionOnOffSelect                    = 0x004A,
  2405.     kVDGetCompressionTypesSelect                    = 0x004B,
  2406.     kVDSetTimeBaseSelect                            = 0x004C,
  2407.     kVDSetFrameRateSelect                            = 0x004D,
  2408.     kVDGetDataRateSelect                            = 0x004E,
  2409.     kVDGetSoundInputDriverSelect                    = 0x004F,
  2410.     kVDGetDMADepthsSelect                            = 0x0050,
  2411.     kVDGetPreferredTimeScaleSelect                    = 0x0051,
  2412.     kVDReleaseAsyncBuffersSelect                    = 0x0052,
  2413.     kVDSetDataRateSelect                            = 0x0054,
  2414.     kVDGetTimeCodeSelect                            = 0x0055,
  2415.     kVDUseSafeBuffersSelect                            = 0x0056,
  2416.     kVDGetSoundInputSourceSelect                    = 0x0057,
  2417.     kVDGetCompressionTimeSelect                        = 0x0058,
  2418.     kSGInitializeSelect                                = 0x0001,
  2419.     kSGSetDataOutputSelect                            = 0x0002,
  2420.     kSGGetDataOutputSelect                            = 0x0003,
  2421.     kSGSetGWorldSelect                                = 0x0004,
  2422.     kSGGetGWorldSelect                                = 0x0005,
  2423.     kSGNewChannelSelect                                = 0x0006,
  2424.     kSGDisposeChannelSelect                            = 0x0007,
  2425.     kSGStartPreviewSelect                            = 0x0010,
  2426.     kSGStartRecordSelect                            = 0x0011,
  2427.     kSGIdleSelect                                    = 0x0012,
  2428.     kSGStopSelect                                    = 0x0013,
  2429.     kSGPauseSelect                                    = 0x0014,
  2430.     kSGPrepareSelect                                = 0x0015,
  2431.     kSGReleaseSelect                                = 0x0016,
  2432.     kSGGetMovieSelect                                = 0x0017,
  2433.     kSGSetMaximumRecordTimeSelect                    = 0x0018,
  2434.     kSGGetMaximumRecordTimeSelect                    = 0x0019,
  2435.     kSGGetStorageSpaceRemainingSelect                = 0x001A,
  2436.     kSGGetTimeRemainingSelect                        = 0x001B,
  2437.     kSGGrabPictSelect                                = 0x001C,
  2438.     kSGGetLastMovieResIDSelect                        = 0x001D,
  2439.     kSGSetFlagsSelect                                = 0x001E,
  2440.     kSGGetFlagsSelect                                = 0x001F,
  2441.     kSGSetDataProcSelect                            = 0x0020,
  2442.     kSGNewChannelFromComponentSelect                = 0x0021,
  2443.     kSGDisposeDeviceListSelect                        = 0x0022,
  2444.     kSGAppendDeviceListToMenuSelect                    = 0x0023,
  2445.     kSGSetSettingsSelect                            = 0x0024,
  2446.     kSGGetSettingsSelect                            = 0x0025,
  2447.     kSGGetIndChannelSelect                            = 0x0026,
  2448.     kSGUpdateSelect                                    = 0x0027,
  2449.     kSGGetPauseSelect                                = 0x0028,
  2450.     kSGSettingsDialogSelect                            = 0x0029,
  2451.     kSGGetAlignmentProcSelect                        = 0x002A,
  2452.     kSGSetChannelSettingsSelect                        = 0x002B,
  2453.     kSGGetChannelSettingsSelect                        = 0x002C,
  2454.     kSGGetModeSelect                                = 0x002D,
  2455.     kSGSetDataRefSelect                                = 0x002E,
  2456.     kSGGetDataRefSelect                                = 0x002F,
  2457.     kSGNewOutputSelect                                = 0x0030,
  2458.     kSGDisposeOutputSelect                            = 0x0031,
  2459.     kSGSetOutputFlagsSelect                            = 0x0032,
  2460.     kSGSetChannelOutputSelect                        = 0x0033,
  2461.     kSGGetDataOutputStorageSpaceRemainingSelect        = 0x0034,
  2462.     kSGWriteMovieDataSelect                            = 0x0100,
  2463.     kSGAddFrameReferenceSelect                        = 0x0101,
  2464.     kSGGetNextFrameReferenceSelect                    = 0x0102,
  2465.     kSGGetTimeBaseSelect                            = 0x0103,
  2466.     kSGSortDeviceListSelect                            = 0x0104,
  2467.     kSGAddMovieDataSelect                            = 0x0105,
  2468.     kSGChangedSourceSelect                            = 0x0106,
  2469.     kSGSetChannelUsageSelect                        = 0x0080,
  2470.     kSGGetChannelUsageSelect                        = 0x0081,
  2471.     kSGSetChannelBoundsSelect                        = 0x0082,
  2472.     kSGGetChannelBoundsSelect                        = 0x0083,
  2473.     kSGSetChannelVolumeSelect                        = 0x0084,
  2474.     kSGGetChannelVolumeSelect                        = 0x0085,
  2475.     kSGGetChannelInfoSelect                            = 0x0086,
  2476.     kSGSetChannelPlayFlagsSelect                    = 0x0087,
  2477.     kSGGetChannelPlayFlagsSelect                    = 0x0088,
  2478.     kSGSetChannelMaxFramesSelect                    = 0x0089,
  2479.     kSGGetChannelMaxFramesSelect                    = 0x008A,
  2480.     kSGSetChannelRefConSelect                        = 0x008B,
  2481.     kSGSetChannelClipSelect                            = 0x008C,
  2482.     kSGGetChannelClipSelect                            = 0x008D,
  2483.     kSGGetChannelSampleDescriptionSelect            = 0x008E,
  2484.     kSGGetChannelDeviceListSelect                    = 0x008F,
  2485.     kSGSetChannelDeviceSelect                        = 0x0090,
  2486.     kSGSetChannelMatrixSelect                        = 0x0091,
  2487.     kSGGetChannelMatrixSelect                        = 0x0092,
  2488.     kSGGetChannelTimeScaleSelect                    = 0x0093,
  2489.     kSGChannelPutPictureSelect                        = 0x0094,
  2490.     kSGChannelSetRequestedDataRateSelect            = 0x0095,
  2491.     kSGChannelGetRequestedDataRateSelect            = 0x0096,
  2492.     kSGChannelSetDataSourceNameSelect                = 0x0097,
  2493.     kSGChannelGetDataSourceNameSelect                = 0x0098,
  2494.     kSGInitChannelSelect                            = 0x0180,
  2495.     kSGWriteSamplesSelect                            = 0x0181,
  2496.     kSGGetDataRateSelect                            = 0x0182,
  2497.     kSGAlignChannelRectSelect                        = 0x0183,
  2498.     kSGPanelGetDitlSelect                            = 0x0200,
  2499.     kSGPanelGetTitleSelect                            = 0x0201,
  2500.     kSGPanelCanRunSelect                            = 0x0202,
  2501.     kSGPanelInstallSelect                            = 0x0203,
  2502.     kSGPanelEventSelect                                = 0x0204,
  2503.     kSGPanelItemSelect                                = 0x0205,
  2504.     kSGPanelRemoveSelect                            = 0x0206,
  2505.     kSGPanelSetGrabberSelect                        = 0x0207,
  2506.     kSGPanelSetResFileSelect                        = 0x0208,
  2507.     kSGPanelGetSettingsSelect                        = 0x0209,
  2508.     kSGPanelSetSettingsSelect                        = 0x020A,
  2509.     kSGPanelValidateInputSelect                        = 0x020B,
  2510.     kSGPanelSetEventFilterSelect                    = 0x020C,
  2511.     kSGGetSrcVideoBoundsSelect                        = 0x0100,
  2512.     kSGSetVideoRectSelect                            = 0x0101,
  2513.     kSGGetVideoRectSelect                            = 0x0102,
  2514.     kSGGetVideoCompressorTypeSelect                    = 0x0103,
  2515.     kSGSetVideoCompressorTypeSelect                    = 0x0104,
  2516.     kSGSetVideoCompressorSelect                        = 0x0105,
  2517.     kSGGetVideoCompressorSelect                        = 0x0106,
  2518.     kSGGetVideoDigitizerComponentSelect                = 0x0107,
  2519.     kSGSetVideoDigitizerComponentSelect                = 0x0108,
  2520.     kSGVideoDigitizerChangedSelect                    = 0x0109,
  2521.     kSGSetVideoBottlenecksSelect                    = 0x010A,
  2522.     kSGGetVideoBottlenecksSelect                    = 0x010B,
  2523.     kSGGrabFrameSelect                                = 0x010C,
  2524.     kSGGrabFrameCompleteSelect                        = 0x010D,
  2525.     kSGDisplayFrameSelect                            = 0x010E,
  2526.     kSGCompressFrameSelect                            = 0x010F,
  2527.     kSGCompressFrameCompleteSelect                    = 0x0110,
  2528.     kSGAddFrameSelect                                = 0x0111,
  2529.     kSGTransferFrameForCompressSelect                = 0x0112,
  2530.     kSGSetCompressBufferSelect                        = 0x0113,
  2531.     kSGGetCompressBufferSelect                        = 0x0114,
  2532.     kSGGetBufferInfoSelect                            = 0x0115,
  2533.     kSGSetUseScreenBufferSelect                        = 0x0116,
  2534.     kSGGetUseScreenBufferSelect                        = 0x0117,
  2535.     kSGGrabCompressCompleteSelect                    = 0x0118,
  2536.     kSGDisplayCompressSelect                        = 0x0119,
  2537.     kSGSetFrameRateSelect                            = 0x011A,
  2538.     kSGGetFrameRateSelect                            = 0x011B,
  2539.     kSGSetSoundInputDriverSelect                    = 0x0100,
  2540.     kSGGetSoundInputDriverSelect                    = 0x0101,
  2541.     kSGSoundInputDriverChangedSelect                = 0x0102,
  2542.     kSGSetSoundRecordChunkSizeSelect                = 0x0103,
  2543.     kSGGetSoundRecordChunkSizeSelect                = 0x0104,
  2544.     kSGSetSoundInputRateSelect                        = 0x0105,
  2545.     kSGGetSoundInputRateSelect                        = 0x0106,
  2546.     kSGSetSoundInputParametersSelect                = 0x0107,
  2547.     kSGGetSoundInputParametersSelect                = 0x0108,
  2548.     kSGSetFontNameSelect                            = 0x0100,
  2549.     kSGSetFontSizeSelect                            = 0x0101,
  2550.     kSGSetTextColorSelect                            = 0x0102,
  2551.     kSGSetTextBackColorSelect                        = 0x0103,
  2552.     kSGSetJustificationSelect                        = 0x0104,
  2553.     kSGGetTextRetToSpaceValueSelect                    = 0x0105,
  2554.     kSGSetTextRetToSpaceValueSelect                    = 0x0106,
  2555.     kSGGetInstrumentSelect                            = 0x0100,
  2556.     kSGSetInstrumentSelect                            = 0x0101
  2557. };
  2558.  
  2559. #if PRAGMA_ALIGN_SUPPORTED
  2560. #pragma options align=reset
  2561. #endif
  2562.  
  2563. #if PRAGMA_IMPORT_SUPPORTED
  2564. #pragma import off
  2565. #endif
  2566.  
  2567. #ifdef __cplusplus
  2568. }
  2569. #endif
  2570.  
  2571. #endif /* __QUICKTIMECOMPONENTS__ */
  2572.  
  2573.